在自動佈局完成後,我一直在這個問題上停留在想要設置CALayer
中的CALayer
的框架,圓角半徑和其他操作。但令我驚訝的是,細胞和它的contentView的子視圖出現(0.0, 0.0, 0.0, 0.0)
每次layoutSubviews()
在細胞的子類中被調用。我終於找到了這個問題的解決方案,併發布它,所以如果你面臨類似的問題,每個人都可以看看這個問題。UICollectionViewCell的子視圖的寬度和高度爲零
1
A
回答
1
我一直在敲我的頭一個多星期了,但最後!這是完美的工作對我來說:
落實UICollectionViewDelegate
的collectionView(_:willDisplay:forItemAt:)
功能並觸發該小區的collectionView
即將展示的contentView
新的佈局循環。
斯威夫特:
func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {
cell.contentView.setNeedsLayout()
cell.contentView.layoutIfNeeded()
}
的Objective-C:
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
[cell.contentView setNeedsLayout];
[cell.contentView layoutIfNeeded];
}
這看起來似乎是很煩瑣的操作,但每一個集合視圖中插入一個新的單元,並執行自動佈局的時候,在初始佈局週期之後,單元的frame
s通常是(0.0, 0.0, 0.0, 0.0)
(如在layoutSubviews()
中所觀察到的)但是如果在單元格大約出現在屏幕上之前手動觸發了佈局,則在layoutSubviews()
中觀察到的子視圖的frame
是您希望在自動佈局循環完成之後預期的內容。
請確保觸發自動佈局contentView
而不僅僅是單元格本身此手動觸發器可能看起來很麻煩,但我得到的最好。
相關問題
- 1. UICollectionViewCell寬度和高度0
- 2. FreeImage零寬度和高度
- 3. 爲什麼我的ViewPager的零寬度和高度的孩子?
- 4. ImageElement寬度和高度始終爲零
- 5. 確定視圖的寬度和高度
- 6. 內容視圖的寬度和高度
- 7. 爲什麼self.view的高度和寬度與子視圖的高度和寬度不同?
- 8. Jquery將零寬度和高度爲零的對象視爲不可見
- 9. 凝視零寬度和視野的高度?
- 10. 繪圖程序中的寬度和高度是否爲零?
- 11. UIbutton寬度和高零?
- 12. 爲什麼加載的SWFLoader的寬度和高度爲零?
- 13. React爲可滑動視圖計算視圖寬度和高度
- 14. 根據父寬度和高度調整子視圖的尺寸
- 15. 控制寬度和高度爲身體的圖像寬高比
- 16. UICollectionViewCell動態的寬度和高度固定
- 17. android-自定義視圖的寬度和高度爲0
- 18. 將Anko視圖的高度和寬度設置爲match_parent
- 19. 寬度和圖像的高度是零,因爲異步圖像加載的
- 20. 視頻100%的寬度和高度
- 21. 設置視頻的寬度和高度
- 22. 視頻100%的寬度和高度220px
- 23. Xcode:將UIView高度和寬度設置爲SuperView(主視圖)的一半高度和寬度
- 24. 將div設置爲子圖像的寬度和高度?
- 25. ActionScript 3將資產的寬度和高度鎖定爲零
- 26. Flash MovieClip的寬度和高度始終爲零
- 27. ForeceFully將視圖高度設置爲零
- 28. 集圖片瀏覽的高度和寬度在網格視圖
- 29. imageView中的位圖高度和寬度
- 30. 檢查圖像的寬度和高度