InterfaceBuilderを介してUIButton
のヘッダーセクションにUITableView
を追加しましたが、場合によってはボタンへのアクセスを削除したいと思います。 .hidden = TRUE
プロパティを使用しようとしましたが、ボタンがビューから非表示になり、空白が残ります。プログラムでUITableView
のヘッダーを削除し、テーブルのコンテンツを自動的にサイズ変更して、削除されたヘッダー領域を埋めるにはどうすればよいですか?
テーブルのヘッダービューを削除する場合は、myTable.tableHeaderViewプロパティをnilに設定するだけです。実際にセクションヘッダーがある場合は、viewForHeaderInSectionメソッドからnilを返し、[myTableViewreloadData]を呼び出す必要があります。
次のこともできます。
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
return 0.0;
}
これは私の(単一の)セクションヘッダーで機能するようで、reloadData
の必要性を回避します。
ご了承ください:
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
はまだ呼び出されていますが、その戻り値は無視されているようです。
removeHeader
というブール型のプロパティを作成し、ヘッダーを削除したいときはいつでも次のように呼び出します。
func removeSectionHeader() {
removeHeader = true
self.tableView.reloadData()
}
次に、tableViewがリロードされると、次のtableViewデリゲートメソッドが呼び出されます。
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
if removeHeader {
return 0.0
} else {
let height = self.tableView.sectionHeaderHeight
return height
}
}