我正在为 tableview 部分构建页脚。页脚的高度将在 中指定heightForFooterInSection
,因此viewForFooterInSection
我只想添加子视图并指定页脚视图应填充指定的任何页脚高度(此页脚大小将是动态的)。因此,我将CGRectZero
其用作初始框架并告诉页脚视图展开以填充其父视图。
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
UIView *footerView = [[UIView alloc] initWithFrame:CGRectZero];
footerView = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
footerView = [UIColor greenColor];
return footerView;
}
这按预期工作 - 表格视图的页脚完全被绿色视图填充。
但现在我想UITextView
在页脚中添加一个。文本视图应填充相同的空间,但留下 5 点边框:
{
UIView *footerView = [[UIView alloc] initWithFrame:CGRectZero];
footerView = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
footerView = [UIColor greenColor];
UITextView *textView = [[UITextView alloc] initWithFrame:CGRectInset(footerView.frame, 5, 5)];
textView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
textView.backgroundColor = [UIColor redColor];
[footerView addSubview:textView];
return footerView;
}
文本视图根本不出现,而不是填充页脚视图(有 5 磅的边距)。它可能有一个框架CGRectZero
(甚至可能是-5 x -5?)。但是,如果我将插图设置为 0、0,它会按预期扩展。
对此有何解释?如果我不能CGRectZero
在初始帧中使用 inset,当无法知道 footerView 的帧时,我应该使用什么?