我想在UITableView的页脚中显示UIButton(标题应该完全相同)。
此代码位于我的TableViewController的viewDidLoad中:
UIButton *footerShareButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[footerShareButton setFrame:CGRectMake(10, 0, 70, 50)];
NSLog(@"%f", footerShareButton.frame.size.width);
[self.tableView setTableFooterView:footerShareButton];
NSLog(@"%f", footerShareButton.frame.size.width);
NSLog(@"%f", self.tableView.tableFooterView.frame.size.width);
但是,此代码不起作用。 Button的宽度太大了,它是320.(虽然高度正确。)第一个NSLog输出70,第二个和第三个输出320.所以似乎setTableFooterView方法奇怪地调整了按钮的大小。
我已经将UIButton放在另一个UIView中,然后再将它设置为表格页脚,从而解决了这个问题:
UIButton *footerShareButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[footerShareButton setFrame:CGRectMake(10, 0, 70, 50)];
UIView *aView = [[UIView alloc] initWithFrame:CGRectMake(10, 0, 70, 50)];
[aView addSubview:footerShareButton];
[self.tableView setTableFooterView:aView];
[aView release];
这样,按钮的宽度正确。
但是,我不明白为什么第一个代码示例不起作用。谁能解释一下?
答案 0 :(得分:19)
无论您为视图设置的宽度是UITableView
页脚/标题 - 它的宽度始终与表格的宽度相同。
因此,在您的情况下,您添加的视图会调整为CGRectMake(0, 0, 320, 50)
,但按钮仍保留正确的框架。按钮的框架是根据视图......
修改的:
页脚/标题框中唯一一个在设置时保留的参数是高度。
注意如果在将页眉/页脚视图添加到表格后更改页眉/页脚视图的高度,则不会进行任何更改。您应该在将高度添加到表格之前设置高度...
答案 1 :(得分:3)
实际上有一种方法可以解决这个问题;
创建一个空的UIView 320x(按钮的高度),然后将按钮置于此包含视图的中心。这样,视图内的按钮就不会调整大小。
希望这有帮助,
乔纳森