簡體   English   中英

iOS表格視圖單元格動態尺寸-LayoutSubviews

[英]iOS Table View Cell Dynamic Size - LayoutSubviews

我試圖調用[cell layoutIfNeeded]和[cell.contentView layoutIfNeeded],因為我有許多子視圖,這些子視圖具有在單元的layoutSubviews方法中實現的自定義約束邏輯。

但是,盡管在cellForRowAtIndexPath中調用了這兩個方法,但是當我在contentView中檢查子視圖的框架時,它們的框架仍然不正確。 我確保也可以在每個子視圖上調用layoutIfNeeded。

為什么會這樣? 框架僅在顯示單元格之后才是正確的,但是在此之前,高度的計算不正確。

編輯:

我正在嘗試使用iOS 8中的新自動尺寸調整功能。它的大小無法正確調整,因為如果一個標簽的尺寸大於另一個標簽,我的標簽去向有些復雜的邏輯。 這並不像將標簽堆疊在一起那么簡單-這就是為什么我需要在計算高度之前正確放置子視圖。

我不確定在沒有更多信息的情況下代碼會發生什么,但是您應該考慮使用自動調整單元格大小。 這將自動調整單元格的大小,而無需處理布局子視圖。

override func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    return 100
}

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    return UITableViewAutomaticDimension
}

布局子視圖解決方案仍在某些情況下使用,但主要在UITableViewAutomaticDimension出現之前使用。

暫無
暫無

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

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