我有一个UITableView
嵌套在UIScrollView
内,我发现很难计算出任何一个的高度。
两者的内容都是动态的,所以我想扩展tableview以适应它的内容,然后将scrollview展开以适应tableview的内容。
我有这个用于scrollview:
CGFloat scrollViewHeight = 0.0f;
for (UIView* view in contentView.subviews)
{
scrollViewHeight += view.frame.size.height;
}
但是合成的高度太长,滚动太多。
tableview我发现动态调整大小更难,如果我保留它没有定义的大小它太小了。所以我补充说:
self.tableView.contentSize = CGSizeMake(320.0f, [self.tableView contentSize].height);
这太大了。
我认为tableview的大小取决于其中行的数量和高度,但无法在此处或网上找到明确的答案。
有什么想法吗?
答案 0 :(得分:0)
您的UITableViewDelegate应该实施:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
这将为您的单元格设置正确的大小。
答案 1 :(得分:0)
我使用以下代码设置UIScrollView
的高度:
for (UIView* view in scrollview_.subviews)
{
if (!view.hidden)
{
CGFloat y = view.frame.origin.y;
CGFloat h = view.frame.size.height;
if (y + h > scrollViewHeight)
{
scrollViewHeight = h + y;
}
}
}
[scrollview_ setContentSize:(CGSizeMake(320, scrollViewHeight))];
要获得UITableView
的高度,也许你可以计算像rowheight * rowcount