LoginSignup
2
0

More than 1 year has passed since last update.

UICollectionViewCellのXIBからContentViewが消えた?

Last updated at Posted at 2022-05-04

Xcode-13.1

はじめに

この前モブプロ?のようなことをやっていると UICollectionViewCell の XIB に contentView がない!なんでだ?ということがありました。

現象

どうやら Library(右上の+ボタン)から追加すると contentView ありで生成され、クラスファイル作成時に Also create XIB file をチェックして追加すると contentView なしで生成されるようです。

cell

Interface Builder の上のセルが XIB チェックで作成したセル、下のセルが Library から追加したセルです。

確認

XIB 上で contentView がないセルで実際に contentView がないか確認してみました。

 func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
        let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath)
        return cell
 }

上のコードでブレークポイントを置いて以下を確認してみました。

subviews

どうやら contentView はあるようです。

ラベルを置いて確認してみたところちゃんと UILabelcontenView 上に追加されていました。

label_xib label_log

とりあえず XIB 上で contentView がなくても問題はないようです。

いつから?

Xcode 13.1 と Xcode 11.0 でみてみましたがどちらも contentView はありませんでした。

Do you use contentView in UICollectionViewCell if created from XIB?に Xcode の長年のバグだというコメントがありました。

いつからなんでしょう?:angel:

おわりに

とりあえず XIB 上で contentView がなくても問題はないようですが気持ち悪いので Library から追加するようにしています。

結構前からみたいですがなんで今まで気づかなかったんだろう?(ずっと Library から追加してたのかな:thinking:

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0