私は15 x 15グリッドを形成するコレクションビューを持っています。その高さと幅を、それが含まれているビューの高さの0.5(または何倍)に設定します。私はストーリーボードでこれを行い、アスペクト比を1:1に設定しました。プログラムでコレクションビューのサイズを設定する方法
私の問題は、私は横に画面を回転させたときに、グリッドがもはやないことである私は、例えば、ストーリーボードに直接高さを設定することができ
15×15
300 x 300ですが、別のデバイスに合わせて問題が発生します。
私は15 x 15グリッドを形成するコレクションビューを持っています。その高さと幅を、それが含まれているビューの高さの0.5(または何倍)に設定します。私はストーリーボードでこれを行い、アスペクト比を1:1に設定しました。プログラムでコレクションビューのサイズを設定する方法
私の問題は、私は横に画面を回転させたときに、グリッドがもはやないことである私は、例えば、ストーリーボードに直接高さを設定することができ
15×15
300 x 300ですが、別のデバイスに合わせて問題が発生します。
横長モードの高さが縦長のため、この問題があります。あなたがUICollectionView
の幅&高さの制約を設定するのであれば、superview
に(いくつかの乗数と)等しくなるように、自動的にデバイスを回転するとき、それにサイズを変更しています
あなたはそれがコードで接続幅&高アウトレットとセット充当値をだ何ができますかviewDidLoad
方法
にすぎ
override func viewWillLayoutSubviews() {
guard let flowLayout = collectionView.collectionViewLayout as? UICollectionViewFlowLayout else {
super.viewWillLayoutSubviews()
return
}
flowLayout.invalidateLayout()
super.viewWillLayoutSubviews()
}
これらの行を追加します。この
extension MYViewController: UICollectionViewDelegateFlowLayout {
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: collectionView.frame.width/15, height: collectionView.frame.height/15)
}
}
をお試しください
私はこれを試して、動作させることができませんでした –
上記の更新されたコードを試してください –
私は恐れています。また、私は1:1のアスペクト比を目指しています –