セルの幅を編集しようとしているため、画面のサイズに関係なく、score1.count
のセルが連続して表示されます。コレクションビューに使用するコードは次のとおりです。CollectionViewCellの幅を編集する
func numberOfSections(in collectionView: UICollectionView) -> Int {
return 1
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return self.items.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath as IndexPath) as! MyCollectionViewCell
cell.myLabel.text = String(self.items[indexPath.item])
return cell
}
これは、セルの幅を対象とする関数です。
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout,sizeForItemAt indexPath: IndexPath) -> CGSize {
let size = Int(self.view.frame.size.width)/(score1.count + 1)
return CGSize(width: CGFloat(size), height: 80)
}
私は、さまざまなソースを見てさまざまなことを試していますが、コレクションビューには正しい数のセルがありません。 1つのアイデアは、自動レイアウトでセルサイズを設定しているためですが、変更するたびにxcodeがクラッシュする可能性があります。自動レイアウトをバイパスする方法はありますか?または、自動レイアウトを変更する方法は?
ありがとうございます!
を試してみてください? –
いいえ、私はコード内でそれを参照していません。 –
はUICollectionViewDelegateをUICollectionViewDelegateFlowLayoutに変更しました。みんなありがとう! –