我已将表格视图拖到我的故事板场景中,但它的高度是静态的,除非我在故事板中手动调整它,否则不会根据它包含的单元格进行调整。如何让这张桌子根据其内容的总高度调整自己的高度?
答案 0 :(得分:1)
你将不得不做一些这样的版本:
UITableView
在你生气之前(因为我知道这很明显),让我跟进一下:
UITableView
是UIView
的子类,因此您只需调整其frame
属性。例如:
CGFloat newHeight = ... // Whatever you calculate
CGRect currentFrame = [[self MyTableView] frame];
[[self MyTableView] setFrame:CGRectMake(
currentFrame.origin.x,
currentFrame.origin.y,
currentFrame.size.width,
newHeight)
];
如果您想获得真正的幻想,可以通过将更改包装在[UIView animationWithDuration:]
块中来设置更改动画。
希望这有帮助!
的更新/修改 的
这是一种愚蠢的方式来做它......它有效,但我确信有更好的方法来做到这一点。我 不 声称这是最好/最快/最有效的方式。这更多是为了表明一个原则。 ; - )
- (CGFloat)totalHeightNeededForTableView:(UITableView *)tv {
CGFloat retVal = 0;
int sectionCount = [self numberOfSectionsInTableView:tv];
int rowCount = 0;
NSIndexPath *path = nil;
for (int i = 0; i < sectionCount; i = i + 1) {
rowCount = [self tableView:tv numberOfRowsInSection:i];
for (int j = 0; j < rowCount; j = j + 1) {
path = [NSIndexPath indexPathForRow:j inSection:i];
retVal = retVal + [self tableView:tv heightForRowAtIndexPath:path];
}
}
return retVal;
}