把 UITableView 的 style 屬性設置為 Plain ,這個tableview的section header在滾動時會默認懸停在界面頂端。 而UITableView 的 style 屬性設置為 Grouped ,這個tableview的section header在滾動時不會在界面頂端。
適配代碼參考
if (self.navigationController != nil) {
tableViewTopConstraint.constant = 0//距離tableview距離頂部高度
}else{
// 適配iPhone X
tableViewTopConstraint.constant = CGFloat(IPhone_StatusBarHeight)-20
}
menuTableView.delegate=self
menuTableView.dataSource=self
//menuTableView的類型是Plain的時候sectionHeaderView可以正常懸浮,menuTableView的類型是Grouped的時候sectionHeaderView不懸浮
效果圖:
有導航欄的:
WX20171010-111220.png
WX20171010-111207.png
無導航欄的:
WX20171010-111144.png
iPhone X的:
WX20171010-111420.png
WX20171010-111429.png
類型為Grouped時候效果:
類型為Grouped.png
源碼可以點擊這里下載
因為最近作者在學習swift,所以使用的是swift,與oc相似度比較高,自己可以轉化成oc的,原理都一樣。