2011-03-02 28 views

回答

49

如果要刪除表格的標題視圖,只需將myTable.tableHeaderView屬性設置爲零即可。如果你有什麼實際上是一個節頭,那麼你就需要從viewForHeaderInSection方法返回零,並調用[myTableView reloadData]

+0

那就是訣竅!謝謝! (當我有更多的代表點時,我會投票贊成,歡呼!) – code007 2011-03-02 23:01:15

+1

簡單而直接,非常感謝。 – Felipe 2014-08-12 16:02:21

+0

在OP中可能會有所幫助,可以更新問題的標題,以清楚地表明他正在討論節標題而不是tableView標題。 – wuf810 2015-08-14 10:21:47

20

你也可以這樣做:

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { 
    return 0.0; 
} 

這似乎爲我的(單工作)節頭,並避免需要reloadData

需要注意的是:

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section 

仍稱,但它的返回值似乎被忽略。

+1

感謝@MartinStanley它工作得很好,我不需要調用'reloadData'方法。 – 2012-02-07 16:12:08

+1

如果頭部當前在屏幕上,我懷疑調用'reloadData'是否會改變任何東西,即使你有條件地從heightForHeaderInSection返回0,因爲表格不需要檢查頭部,直到它離開屏幕並進入回到屏幕上。 Callilng'reloadData'是保證在所有情況下刪除節標題的唯一方法。 – Bogatyr 2013-06-21 10:21:56

+0

將其設置爲0仍然會浪費資源。從viewHeader返回nil比隱藏表格要好。 – 2013-08-29 14:45:22

0

我創建了一個名爲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 
     } 
    }