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);
ただし、このコードは機能しません。ボタンの幅が大きすぎます。320 です (高さは正しいですが)。最初の NSLog は 70 を出力し、2 番目と 3 番目の出力は 320 です。
テーブルフッターとして設定する前に、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];
これは機能し、ボタンの幅は正しくなります。
ただし、最初のコード サンプルが機能しない理由がわかりません。誰でも説明できますか?