Tableviewセル内にcollectionviewがあり、コレクションビューセルにnibを使用しています(この場合、イメージビューとラベルに自動レイアウトを使用し、フリーフォームモードになっています)。このメソッドでコレクションビューのデリゲートを処理するtableviewcellクラスでセルサイズを設定しています。
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: 200, height :150)
}
常に機能しますが、Xcode 11以降では機能しません。
Xcodeでcollectionview
Estimate sizeをNoneに設定します11.これの理由は、UICollectionView
のセルが、キャンバスの自動レイアウト制約ビューでセルフサイズできるようになったためです。既存のコレクションビューの動作にオプトインするには、コレクションビューの推定サイズに対して「自動」を有効にし、サイズインスペクターからセルのサイズに対して「自動」を有効にします。
IOS 13より前にデプロイする場合は、performBatchUpdates(_:completion:) during viewDidLoad()
を呼び出すことで、セルフサイズのコレクションビューセルをアクティブ化できます。
参照: https://developer.Apple.com/documentation/xcode_release_notes/xcode_11_release_notes
この問題はXcode 11で発生します。属性インスペクターに移動して、estimateSizeをNoneに変更します。すべてを修正します。