2

CollectionViewのアイテムレイアウトのサイズをアスペクト比を維持したスクリーンサイズに合わせようとしています。CollectionViewのアイテムレイアウトのサイズをスクリーンサイズに合わせて調整する

required init?(coder aDecoder: NSCoder) { 
    super.init(coder: aDecoder) 

    scrollDirection = UICollectionViewScrollDirection.Horizontal 
    itemSize = CGSizeMake(PageWidth, PageHeight) 
    minimumInteritemSpacing = 10 
} 
UICollectionViewFlowDelegateから継承 CardLayoutクラス、でその後

private let CardWidth: CGFloat = 362 
private let CardHeight: CGFloat = 568 

:今では唯一のiPad上でうまく機能まで、私は資産の大きさに応じて、高さと幅をsettedました

問題はアイテムがカードなので、height> です。私はiPhoneとiPadの両方をランドスケープで開発していますので、UIScreen.mainScreen().boundsを成功させようとしました。アプリは風景だけであることから、

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize{ 

retrun CGSizeMake(collectionView.frame.size.width/2 ,collectionView.frame.size.height/ 2) 
} 

私はreturnwidthheightをスワップ:私はiPhoneとiPadの両方がCollectionViewController.swiftに追加するためのまともな結果を得ることができました。カードがアスペクト比を維持しないため、これは最良の解決策ではありません。アスペクト比を維持しながら画面にサイズを適応させる方法はありますか?

答えて

0

セルにアスペクト比の制約を適用して、セル自体がアスペクト比を維持し、セルからビューに別の制約を適用して、ビューに対してアスペクト比を維持できるようにすることができます。次に、等しい幅/高さの制約を適用して、乗数を通じてセルのサイズを調整します。

関連する問題