私はUICollectionViewとそのセルをプログラムで作成しています。私のカスタムUICollectionViewでは実装されている唯一のメソッドはlayoutSubviews
です。私のコレクションビューを設定し、委任を処理するためのコードは以下の通りです。 GIFから一度見るとわかるように、セルは正しく読み込まれますが、大部分は整列していないか、スクリーンから外れています。私はそれが再利用される方法に何か間違っていると思う。私は通常、テーブルビューとスクロールビューを使用しているので、コレクションビューに慣れていません。これをどうすれば解決できますか?プログラムで作成したUICollectionViewを使用すると奇妙な図が表示される
let layout = UICollectionViewFlowLayout()
layout.scrollDirection = .horizontal
layout.minimumInteritemSpacing = 0
layout.minimumLineSpacing = 0
layout.itemSize = CGSize(width: 160, height: 200)
featuredCollectionView = UICollectionView(frame: frame), collectionViewLayout: layout)
featuredCollectionView.delegate = self
featuredCollectionView.dataSource = self
featuredCollectionView.register(ItemCollectionViewCell.self, forCellWithReuseIdentifier:
"cell")
// MARK: CollectionView Delegate
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat
{
return 8
}
func numberOfSections(in collectionView: UICollectionView) -> Int
{
return 1
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize
{
return CGSize(width: 160, height: featuredCollectionView.frame.size.height)
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int
{
return featuredItems.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell
{
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! ItemCollectionViewCell
cell.item = featuredItems[indexPath.row]
return cell
}
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets
{
return UIEdgeInsetsMake(0, 0, 0, 0)
}
あなたFUNCのcollectionViewに高さを確認し(_ collectionView:UICollectionView、レイアウトcollectionViewLayout:UICollectionViewLayout、sizeForItemAt indexPath:IndexPath) - > CGSize {リターンCGSize(幅:160、高さ:featuredCollectionView.frame.size.height) } ....時にはタイミングの問題がある...コレクションビューに予期しない高さがある可能性がある – Raegtime
高さの変更が機能しない –
@ Big_Mac_24あなたが使用しているセルをgithubプロジェクトに投稿できますか? –