簡體   English   中英

如何使用集合視圖單元格Swift iOS實現網格視圖

[英]How to achieve Grid view using collection view cell swift ios

請讓我知道如何制作網格視圖,例如每列縱向為2個單元格,橫向為3個單元格。 使用集合視圖自定義單元格而不使用Pod或第三方框架。

提前致謝。

你需要這樣

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
    let collectionViewSize = collectionView.frame.size.width

    if(UIDeviceOrientationIsLandscape(UIDevice.currentDevice().orientation))
    {
       return CGSizeMake(collectionViewSize/3, collectionViewSize/3)
    }
    else if(UIDeviceOrientationIsPortrait(UIDevice.currentDevice().orientation))
    {
            return CGSizeMake(collectionViewSize/2, collectionViewSize/2)
    }
    return CGSizeZero
}

您還需要在方向更改時重新加載

NSNotificationCenter.defaultCenter().addObserver(self, selector: "rotated", name: UIDeviceOrientationDidChangeNotification, object: nil)

func rotated()
{
   collectionView.reloadData() 
}

注意 :確保您將確認UICollectionViewDelegateFlowLayout協議

在這里已經回答過類似的問題。 我什至解釋了如何根據您的要求更改視圖。 在您的情況下,它可能看起來像這樣。

let orientation = UIApplication.sharedApplication().statusBarOrientation
if(orientation == .LandscapeLeft || orientation == .LandscapeRight)
{
    return CGSizeMake((yourCollectionView.frame.size.width-10)/3, (yourCollectionView.frame.size.height-10)/3)
}
else{
   return CGSizeMake((yourCollectionView.frame.size.width-5)/2, (yourCollectionView.frame.size.height-5)/2)
}

推導是單元格填充(在我的情況下為5)。 如果3個單元格,則2個單元格填充總計10演繹;如果2個單元格,則1個單元格填充總計5個演繹。 希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM