簡體   English   中英

iOS 11浮動TableView標題

[英]iOS 11 Floating TableView Header

讓應用程序有多個部分,“擴展”時每個部分有幾行,“折疊”時沒有。 每個部分都有一個部分標題,正在使用UITableViewHeaderFooterView等的子類重用它們。到目前為止UITableViewHeaderFooterView很好。

然后在iOS 11中:

描述問題的屏幕截圖

我已經使用了可視化調試器,並確認它是我的部分標題浮動。 標題下方的所有行都正確顯示,其他標題顯示正常。

為了恢復理智,我拋棄了標題的所有重用邏輯,並以編程方式編寫它們。 彼此彼此。 iOS 11之前的所有工作仍然在iOS 11中浮動。浮動的部分似乎每次都會改變,所以就是這樣。

有任何想法嗎?

剛遇到類似的問題,發現這個問題的討論對我有用:

self.tableView.estimatedRowHeight = 0
self.tableView.estimatedSectionHeaderHeight = 0
self.tableView.estimatedSectionFooterHeight = 0

似乎在iOS 11中更改了UITableView的默認行為以使用估計的高度。 iOS 11 beta 2的發行說明說:

表視圖現在默認使用估計的高度,這也意味着單元格和節頭/頁腳視圖現在默認為自我大小。 estimatedRowHeight,estimatedSectionHeaderHeight和estimatedSectionFooterHeight屬性的默認值現在是UITableViewAutomaticDimension,這意味着表視圖選擇要使用的估計高度。 如果可能,您仍應為每個房產提供更准確的估算,這是您對實際高度平均值的最佳猜測。 如果現有的表視圖代碼在使用iOS 11 SDK構建應用程序時表現不同,並且您不想采用自行調整大小,則可以通過將值設置為零來禁用估計的高度來恢復以前的行為。每個估計的高度屬性。 (30197915)

另請參閱此處鏡像的beta 2發行說明。

如果你想在整個應用程序的ahmedre答案中進行更改,可以在AppDelegate中設置此屬性didFinishLaunchingWithOptions

UITableView.appearance().estimatedRowHeight = 0
UITableView.appearance().estimatedSectionHeaderHeight = 0
UITableView.appearance().estimatedSectionFooterHeight = 0

我不知道為什么在我的情況下,@ ahmedre的回答是行不通的...

所以如果你將所有估計的屬性設置為0也不起作用,我的答案可能對你有幫助:

func tableView(_ tableView: UITableView, estimatedHeightForHeaderInSection section: Int) -> CGFloat {
    return 0.1
}

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
    return 0.1
}

嘗試將表格樣式從普通更改為分組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM