簡體   English   中英

在不同設備上動態設置集合視圖單元格大小

[英]Dynamically set collection view cell size on different devices

我正在嘗試使用集合視圖實現水平滑動,該視圖應在每次滑動時居中放置圖像視圖

我可以通過手動將單元格高度+寬度設置為設備尺寸來在一種設備尺寸上執行此操作

但是,當我更換設備時,像元大小不成比例

如何保持單元大小以隨每個設備改變? 我希望單元格占用寬度和高度的100%

謝謝

我的建議:不要。 您所描述的更像是UIPageViewController而不是集合視圖。 使用UIPageViewController,您所描述的內容微不足道-實際上是自動發生的。

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

        return CGSizeMake(self.view.frame.size.width) , (self.view.frame.size.height))
}

盡管我同意馬特的回答。 但是您也可以使用此代碼來實現。 您無需創建擴展程序。 您只需要重寫此集合視圖委托方法

為您的集合視圖創建一個自定義流布局,並將委托分配給您的視圖控制器。

這將使您可以根據要求動態更改布局(在每種情況下,每個設備的大小都不同)。 特別是, collectionView(UICollectionView, layout: UICollectionViewLayout, sizeForItemAt: IndexPath)方法允許您更改每個項目的單元格大小。 它看起來像這樣:

extension ViewController : UICollectionViewDelegateFlowLayout {
    func collectionView(UICollectionView, layout: UICollectionViewLayout, sizeForItemAt: IndexPath) -> CGSize {
        return CGSize(width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height)
    }
}

暫無
暫無

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

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