私は以下のようなUIを作成しようとしています。私はUICollectionView
とFlowLayout
を使用しています。この目的のためにコレクションビューの間隔が壊れます。
。
全幅との最初のセルを示すと3列としてセルを残りのために、私はsizeForItemAtIndexPath:
とminimumInteritemSpacingForSectionAtIndex
メソッド実装しました:
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize
{
var cellSize = CGSizeZero
if indexPath.item == 0
{
let width = self.cvMedia.frame.width - 20
let height = (width * 9)/16
cellSize = CGSize(width: width, height: height)
}
else
{
let width = self.cvMedia.frame.width/3 - 20
let height = (width * 16)/9
cellSize = CGSize(width: width, height: height)
}
return cellSize
}
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAtIndex section: Int) -> CGFloat
{
return 20.0
}
をしかし、私はiPhone 6SPlusやiPhone 6Plusで次の出力を取得しています:
Iは、20から19へのアイテムの間隔を変更することにより試み、それがシミュレータに取り組んだが、実際のデバイスでは同じ挙動を示します。スペップス値を変更すると、一部のデバイスバージョンで正しい出力が得られ、一部のバージョンでは動作しません。私はデバイスのバージョンチェックを追加することができ、その値に基づいて返すことができます。しかし、それは優雅な解決策ではなく、将来のバージョンで壊れるでしょう。誰も私がこの問題を解決するのを助けることができますか?前もって感謝します。
あなたのストーリーボードからデフォルトのインセットを削除したことがありますか? – Happiehappie
@Happiehappie:いいえ、私はストーリーボードで何も変更しませんでした。 –