2016-12-21 3 views
0

Im пытается построить демонстрационное приложение (тренинг на моей Skillz)UICollection Просмотр пользовательских ячеек Компоновка

Это демо-приложение имеет вертикальный Collection View экран, который имеет ячейки с изображения Просмотров и вид с этикетками

Макет как есть: каждая ячейка 150 ширина и 415 высота 2 ячейки на строку, идущие вертикально

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

Когда я попытался сделать это, мне удалось изменить размер ячейки пропорционально, но я не мог изменить ячейки Y позиции

Во всяком случае, вот весь мой код надеется, что вы, ребята поняли, что я имею в виду, Большое спасибо заранее

import UIKit 

class ViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout { 

var imagesArray = [#imageLiteral(resourceName: "Forest"),#imageLiteral(resourceName: "Tree") , #imageLiteral(resourceName: "hinna"), #imageLiteral(resourceName: "beach1"),#imageLiteral(resourceName: "work"),#imageLiteral(resourceName: "ya"),#imageLiteral(resourceName: "bird"),#imageLiteral(resourceName: "rose"),#imageLiteral(resourceName: "Tree"),#imageLiteral(resourceName: "Labra") ] 

    var labelsArray = ["bahwaijf", "abwohd", "owauhduo", "awodh"] 

    @IBOutlet weak var collectionView: UICollectionView! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

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

     } 

    public func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 
     return imagesArray.count 
    } 

    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { 
     let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) as! CollectionVCe 

     cell.cellImg.image = imagesArray[indexPath.row] 
     cell.descLabel.text = descArray[indexPath.row] 
     cell.itemLabel.text = labelsArray[indexPath.row] 

     return cell 
    } 

} 

ответ

0

Вы пытались изменить ячейки вставки? Вы можете сделать это на построителе интерфейса или программно.

Interface Builder:

enter image description here

Программным:

let collectionViewLayout = collectionView.collectionViewLayout as? UICollectionViewFlowLayout 

collectionViewLayout?.sectionInset = ... // some UIEdgeInset 

collectionViewLayout?.invalidateLayout() 
+0

Я попытался, что моя проблема является результатом им получить 2 ячейки в каждой строке, но в следующий ряд оленья кожа стек до 1-я строка, если размер ячейки меньше Я имею в виду, что у меня есть 4 квадрата, 2 на каждой строке, Первая строка имеет левый квадрат, высота 380 d правый - 415, начинается вторая строка, а 415 - с левой стороны, где пространство между ячейками больше, потому что первая ячейка равна 380, а не 415, она должна начинаться с 380 во второй строке, но это не так –

Смежные вопросы