动态设置动态生成的UITableviews的高度和位置?

时间:2012-03-27 16:59:59

标签: iphone objective-c ios uitableview

我首先要感谢大家帮助我Dynamically Generate UITableViews。但是我需要将这个问题扩展到我发现的一个新问题。虽然我现在可以动态生成表,但我需要知道如何根据将有多少行动态设置表的高度。如果您阅读上面的主题,我基本上必须根据用户拥有的策略生成x表,但该表中的x行数并不总是或者全部都是相同的数量。我怎么能这样做,以便下一个表将在它上面的表之后的视图的正确部分开始?这样它们不重叠?

如果我说错了,你不明白,请问。

1 个答案:

答案 0 :(得分:5)

好吧,如果你有每个表中的行数,那就不太难了。

我假设您在数组中拥有所有表视图以便于管理。

你只需要在保持位置计数器的同时循环遍历数组,然后根据计数器调整表格视图的大小。

CGFloat currentYPosition = 0;

for (UITableView *tableView in allTableViews) {
    CGRect frame = tableView.frame;

    CGFloat height = tableView.rowHeight * numberOfRowsInTableView;

    frame.origin.y = currentYPosition;
    frame.size.height = height;

    tableView.frame = frame;

    currentYPosition += height;
}

对于height变量,您可以添加任何其他额外内容(表视图页眉,页脚等)