获取 UITableView 动态高度的最佳方法是啥?
Posted
技术标签:
【中文标题】获取 UITableView 动态高度的最佳方法是啥?【英文标题】:what is the best way to get dynamic height of UITableView?获取 UITableView 动态高度的最佳方法是什么? 【发布时间】:2016-03-01 10:11:12 【问题描述】:我正在以编程方式创建 UITableView。我根据内容保持单元格大小动态。所以最后我想通过使用 tblPackage.rowHeight 检查 tableview 高度(最终是单元格大小乘以单元格数)大于屏幕高度。我在 cellForRowAtIndexPath 中计算 tblPackage.rowHeight。但是我没有在代码中获得动态行高,因为在执行此代码后会调用 tableview 委托方法。这是我的工作:
tblPackage = [[UITableView alloc] initWithFrame:CGRectMake(5, 50.5, viewPackage.frame.size.width - 10, viewPackage.frame.size.height -70) style:UITableViewStylePlain];
[viewPackage addSubview:tblPackage];
tblPackage.delegate = self;
tblPackage.dataSource = self;
[tblPackage setFrame:CGRectMake(tblPackage.frame.origin.x, tblPackage.frame.origin.y, tblPackage.frame.size.width,(tblPackage.rowHeight * ([arrayTiers count])))];
NSLog(@"screen height: %f",SCREEN_HEIGHT);
if (tblPackage.frame.origin.y + 70 + tblPackage.frame.size.height > SCREEN_HEIGHT - 11)
if ([[[arrayCatInfo objectAtIndex:segIndex] valueForKey:@"allow_skip"] isEqualToString:@"true"])
UIButton *btnSkipPackage = [[UIButton alloc]initWithFrame:CGRectMake(15, tblPackage.frame.size.height + 45 + 50.5, viewPackage.frame.size.width - 30, 35)];
btnSkipPackage.backgroundColor = [UIColor lightGrayColor];
[btnSkipPackage setTitle:[NSString stringWithFormat:@"Opt out of %@", [[arrayCatInfo objectAtIndex:segIndex] valueForKey:@"name"]] forState:UIControlStateNormal];
[btnSkipPackage addTarget:self action:@selector(skipCategory:) forControlEvents:UIControlEventTouchUpInside];
[viewPackage addSubview:btnSkipPackage];
CGRect frameRect = viewPackage.frame;
frameRect.size.height = SCREEN_HEIGHT - 6 - 70;
viewPackage.frame = frameRect;
else
[tblPackage setFrame:CGRectMake(tblPackage.frame.origin.x, tblPackage.frame.origin.y, tblPackage.frame.size.width, SCREEN_HEIGHT - 11 - 70 - 50.5)];
CGRect frameRect = viewPackage.frame;
frameRect.size.height = SCREEN_HEIGHT - 6 - 70;
viewPackage.frame = frameRect;
tblPackage.scrollEnabled = TRUE;
【问题讨论】:
你的 ios 版本目标是什么? 【参考方案1】:对于 TableviewCell 动态高度
设置
_tableView.estimatedRowHeight = 100.0;
_tableView.rowHeight = UITableViewAutomaticDimension;
https://***.com/a/35055320/5085393
【讨论】:
您能否更具体地了解这些行的作用? UITableViewAutomaticDimension 会给我每个单元格的行高吗?因为我在使用 tableview.rowHeight 条件后调用的 cellForRowAtIndexPath 中计算单元格大小 UITableViewAutomaticDimension 会根据单元格内容返回每一行的高度以上是关于获取 UITableView 动态高度的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
我想要动态获取 uitableview 总高度,而不是 uitableviewcell,
自动布局动态大小 uitableview 单元格的最佳方法是啥