0

我創建了一個UICollectionView,其中有一個原型單元格。我想要每行2個單元格,並在較小的屏幕上運行它,這樣每行就有一個單元格。 單元之間的距離在更大的屏幕上增加。我只是在談論iPhone手機。CollectionView Cell Auto resizing

我想我必須通過以屏幕寬度爲2來劃分屏幕寬度來設置約束。我知道如何將屏幕寬度除以2,但我不知道如何以編程方式給單元格寬度和高度。

回答

1

UICollectionViewDelegateFlowLayout爲此定義了一種方法。

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

例子:

class MyViewController : UIViewController, UICollectionViewDelegateFlowLayout { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     self.collectionView.delegate = self 
     self.collectionView.dataSource = self 
    } 

    // ... 

    func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize { 
     return CGSize(width: CGFloat(self.view.frame.size.width/2), height: self.view.frame.size.height) 
    } 

    // ... 
} 
+0

感謝您的答覆...你能請出示一個例子嗎? –

+0

哦,那對我很有用......非常感謝你..... –

+0

@ user5744323你可以接受答案,所以它會幫助其他用戶。不錯,我很歡迎 – azimov