TableView高度无法在IOS中resize
我正在尝试做这样的事情,我有一个UIViewControler
。 所以在我的故事板,我拖放一个UITableView
的视图。 我应该在该表视图中显示一些自定义的行。 但我想dynamic地改变该表视图的高度(根据表视图内的行数)。
我尝试像下面的代码,但没有任何工作到目前为止。
CGRect tvframe = [tableView frame]; [tableView setFrame:CGRectMake(tvframe.origin.x, tvframe.origin.y, tvframe.size.width, tvframe.size.height + 20)];
我也试过这个
CGRect frame = self.tableView.frame; frame.size = self.tableView.contentSize; self.tableView.frame = frame;
但没有为我工作..请有人告诉我,我该怎么做。
谢谢。
在Autolayout中,如果你想改变框架然后尝试约束( NSLayoutConstraint
IBOutlet
)。
通过以下方式设置约束出口并更改constant
数值:
self.sampleConstraint.constant = 20 self.view.layoutIfNeeded()
我希望这个答案可以帮助你…
对于dynamicTableviewCell高度
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { NSString *OptName_length = @" Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam"; NSDictionary *attributes = @{NSFontAttributeName: [UIFont systemFontOfSize:17.0]}; CGRect rect = [OptName_length boundingRectWithSize:CGSizeMake(tableView.bounds.size.width-150.0, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:attributes context:nil]; CGSize requiredSize = rect.size; return requiredSize.height +5.0f; }
值150.0是单元格中的标签或textview的静态宽度。 或标签前或后的其他元素的宽度或水平空间值。 将单元格中的textview的前导,尾部,顶部和底部约束设置为不设置静态高度
将tableview高度调整到no。 细胞…
- (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:YES]; [self adjustHeightOfTableview]; } - (void)adjustHeightOfTableview { CGFloat height = tblMainMenu.contentSize.height; CGFloat maxHeight = tblMainMenu.superview.frame.size.height - tblMainMenu.frame.origin.y; // if the height of the content is greater than the maxHeight of // total space on the screen, limit the height to the size of the // superview. if (height > maxHeight) height = maxHeight; // now set the height constraint accordingly self.tableViewHeightConstraint.constant = height; [UIView animateWithDuration:0.1 animations:^{ [self.view setNeedsUpdateConstraints]; }]; }
CGRect frame = self.tableView.frame; frame.size.height = resourceArray.count*row_height; self.tableView.frame = frame;
只要使用这个
tableView.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
尝试下面的代码,
CGFloat height = self.tableView.rowHeight; height *= [myArray count]; CGRect tableViewFrame = self.tableView.frame; tableViewFrame.size.height = height; self.tableView.frame = tableViewFrame;
尝试这个 :
[UIView animateWithDuration:0.1 animations:^{ CGRect frame = self.tableView.frame; frame.size.height = 100.0; // expected height self.tableView.frame = frame; }];
我希望这有助于..
如果你的行数是固定的比你可以做这些没有约束dynamic..
在你的项目.h文件中
UITableView *tbl; int numOfRows; float tableViewheight,tableViewWidth,heightForRow;
在您的项目.m文件中
- (void)viewDidLoad { [super viewDidLoad]; heightForRow=70; numOfRows=2; tableViewheight=heightForRow*numOfRows; tableViewWidth=self.view.frame.size.width; tbl=[[UITableView alloc]initWithFrame:CGRectMake(0, 64, tableViewWidth, tableViewheight)]; [tbl setDelegate:self]; [tbl setDataSource:self]; [self.view addSubview:tbl]; } -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { return heightForRow; } -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return numOfRows; }
- UITableViewCell和heightForRowAtIndexPath的iOSdynamic高度
- 在iphone中可扩展的tableView
- 奇怪的UITableView插入/删除行animation
- 如何将投影添加到UITableViewCell的分隔线?
- 如何在编辑时更改iPhone UITableView删除button标题
- 调整UITableViewCell框架问题
- Objective-c UITableView单独的类cellForRowAtIndexPath不会被调用
- 在刷行或单击编辑button时,更改UITableViewCell中默认的红色删除button的颜色
- 在添加新行后,UITableView scrollToRow不再适用于iOS 11