我在構建我的設置屏幕並使用分組表格視圖。 試圖設置標題時,我在標題視圖上方看到間距。 我再次檢查,我確實在-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
中傳遞了正確的視圖高度。iOS7上分組的UITableView的標題視圖高度
下面是此行爲的截圖:
你可以看到我在它的標題(振動,靜音模式)的看法,他是黑暗的背景色和它上面的明亮空間。
我在構建我的設置屏幕並使用分組表格視圖。 試圖設置標題時,我在標題視圖上方看到間距。 我再次檢查,我確實在-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
中傳遞了正確的視圖高度。iOS7上分組的UITableView的標題視圖高度
下面是此行爲的截圖:
你可以看到我在它的標題(振動,靜音模式)的看法,他是黑暗的背景色和它上面的明亮空間。
經過大量搜索,我終於找到了一個解決方案。 tableview的委託需要實現heightForFooterInSection並返回一個非常小的數字。返回0默認爲導致多餘空格的相同間距。
-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
return CGFLOAT_MIN;
}
很確定這只是一個簡單的黑客攻擊。但是,一個簡單的方法來做到這一點是寫這個函數:
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
return 48.0f; // header height
}
來定製它的高度。
很確定還有其他方法可以做到這一點,我不知道。
感謝您的回答。已經實施了這種方法。我返回正確的標題視圖高度,但仍獲得額外的~20像素的距離。 – Gal
試試這個:
- (void)viewWillAppear:(BOOL)animated{
CGRect frame = self.tableView.tableHeaderView.frame;
frame.size.height = 1;
UIView *headerView = [[UIView alloc] initWithFrame:frame];
[self.tableView setTableHeaderView:headerView];
}
感謝您的回覆。我認爲這隻會影響桌面的頂部標題,而我正在討論部分的標題。 – Gal
這實際上是一個合法的解決方案 - 如果存在'tableHeaderView',系統不會爲第一節標題添加額外的空間。就我個人而言,我更喜歡這個技巧來處理頁腳高度。 –
看來,蘋果做了一個非常明智的設計決策,使分組表視圖的頂部有額外的空間。嘗試調整UITableView
的contentInset。請參閱my answer here
這與Casey的回答非常相似,但它更清潔一點,因爲它不需要實施委託方法。當你設置你的表格視圖時,只需將屬性sectionFooterHeight
設置爲0即可。它使用較少的代碼完成相同的事情(並且不存在DBL_MIN
奇怪)。
tableView.sectionFooterHeight = 0.0;
雨燕2.2的版本:
func tableView(tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return CGFloat.min
}
那麼什麼是你的問題?而這仍然是NDA,你應該在開發者論壇上提問。 – Kevin
如何擺脫我的標題視圖上方的空間。 – Gal