IOS Tableview在scrollview高度

时间:2011-10-24 12:05:53

标签: ios scrollview tableview

我有一个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的大小取决于其中行的数量和高度,但无法在此处或网上找到明确的答案。

有什么想法吗?

2 个答案:

答案 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