Rez*_*.Ab 9 xcode ios uicollectionview uicollectionviewcell swift
我在tableview单元格内有collectionview,并且将nib用作我的collectionview单元格(在其中我对imageview和label使用autolayout,它处于Freeform模式下)。我在tableviewcell类中设置单元格大小,该类正在通过此方法在其中处理collectionview的委托:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: 200, height :150)
}
Run Code Online (Sandbox Code Playgroud)
它始终有效,但在Xcode 11之后无效。
tet*_*jen 16
您在 Xcode 11中将collectionview Estimate size设置为None。这样做的原因是 a 中的单元格UICollectionView现在可以使用画布中的 Auto Layout 约束视图自行调整大小。要选择现有集合视图的行为,请在大小检查器中为集合视图的估计大小启用“自动”,并为单元格大小启用“自动”。
如果在 iOS 13 之前部署,您可以通过调用激活自调整集合视图单元格 performBatchUpdates(_:completion:) during viewDidLoad()
参考:https : //developer.apple.com/documentation/xcode_release_notes/xcode_11_release_notes
Tua*_*yen 14
我也有同样的问题。而我的解决办法是改变Estimate size以None在Xcode 11。
正如 Anh Tuan 在此处的另一个答案中所说,您只需要在 Storyboard 的 Collection View 的 Size Inspector中将Estimate Size更改为none。
但是,如果您想以编程方式执行此操作,可以尝试以下代码:
let layout = myCollectionViewReferenceHere.collectionViewLayout as! UICollectionViewFlowLayout
layout.estimatedItemSize = .zero
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
802 次 |
| 最近记录: |