2015-08-31 6 views
1

Таким образом, проблема, с которой я столкнулась, - это представление коллекции, в зависимости от того, какой имитатор я использую, отображает колонки 3 (iPhone 5) в одной настройке или 4 столбца (iPhone 6) в другой. Я хочу, чтобы в представлении коллекции всегда отображалось 4 столбца, независимо от того, насколько большой или маленький экран. Вот код, я использую до сих пор:swift collection view resizing problems

override func viewDidLoad() { 
    super.viewDidLoad() 

    let screenWidth = UIScreen.mainScreen().bounds.size.width 
    let screenHeight = UIScreen.mainScreen().bounds.size.height 


    let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout() 
    layout.sectionInset = UIEdgeInsets(top: 20, left: 10, bottom: 10, right: 10) 
    layout.itemSize = CGSize(width: 100, height: 80) 

      collview1 = UICollectionView(frame: CGRectMake(0, 0, screenWidth, screenHeight), collectionViewLayout: layout) 


    [collview1.reloadData]; 


} 

ответ

1

Вы хотите изменить layout.itemSize к расчетному значению.

Что-то вроде:

layout.itemSize = CGSize(width: (screenWidth - spacing)/numberOfColumns, height: desiredHeight) 

Spacing бы общее расстояние между элементом в строке плюс левых и правых вставках.

Желаемый результат должен быть рассчитанным значением для поддержания соотношения сторон ваших ячеек между устройствами.

Надеюсь, это полезно.