描画前にcellのframeサイズを取りたい
xibでUICollectionViewCellを定義すると、viewファイルのframeのサイズが、xibで定義したファイルのサイズになってしまいます。
例えば、xibでUICollectionViewCellの幅を320としていると、iPhone6では本来幅375が欲しいのに、取れないといった具合です。
もちろん、描画する際には、正しいframeのサイズを取得することが可能なのですが、描画前にframeサイズを使いたいことがあり、どうするのか分かりませんでした。
色々調べたところ、以下のようにしたら、上手くframeサイズを変更することが出来ました。
class CustomCell: UICollectionViewCell {
// 色々なところで載っている以下の方法では上手くいかなかった
// override var bounds: CGRect {
// didSet {
// contentView.frame = bounds
// }
// }
override func awakeFromNib() {
super.awakeFromNib()
self.contentView.frame = self.bounds
self.contentView.autoresizingMask = [UIViewAutoresizing.FlexibleWidth, UIViewAutoresizing.FlexibleHeight]
}
}









何かと便利だと思うので、UICollectionViewCellのviewには必ず入れておいた方が良いかもしれないですね。
こういう必須なものをまとめて入れておいた、共通クラスを作っておいて、それを継承してcellを作った方がいいのかもしれないですね。