2015-05-23 2 views
1

Я немного начинаю с быстрым. Я пытаюсь просто создать представление коллекции, которое помещено в определенную область экрана (ландшафт iPad iOS). Возможно, что на самом деле есть ошибка collectionView ... Следующий код создает прикрепленное изображение. Проблема заключается в том, что полнота представления коллекции просто не отображается ...UICollectionView не отображается - ошибка?

import UIKit 

class ViewController: UIViewController, UICollectionViewDelegateFlowLayout, UICollectionViewDataSource { 

    var collectionView: UICollectionView? 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
     let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout() 
     layout.sectionInset = UIEdgeInsets(top: 300, left: 500, bottom: 30, right: 10) 
     layout.itemSize = CGSize(width: 32, height: 32) 
     collectionView = UICollectionView(frame: self.view.frame, collectionViewLayout: layout) 
     collectionView!.dataSource = self 
     collectionView!.delegate = self 
     collectionView!.registerClass(UICollectionViewCell.self, forCellWithReuseIdentifier: "Cell") 
     collectionView!.backgroundColor = UIColor.whiteColor() 
     self.view.addSubview(collectionView!) 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

    func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { 
     return 40 
    } 

    func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { 
     let cell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! UICollectionViewCell 
     cell.backgroundColor = UIColor.orangeColor() 
     return cell 
    } 
} 

iOS simulator

Кроме того, есть ли способ я могу избежать использования Flow Layout? Жесткий просмотр коллекции в порядке. Мне нужно представление коллекции 10x10, которое не будет меняться по размеру или количеству ячеек.

+0

Ваши 'UIEdgeInsets' ** огромны **. Попробуйте что-то меньшее. Например, 'layout.sectionInset = UIEdgeInsets (вверху: 50, слева: 50, внизу: 50, справа: 50)' –

+0

Спасибо за ответ - возможно, мое понимание UIEdgeInsets неверно. Ваша рекомендация помогает, но позволяет сказать, что я хочу, чтобы моя коллекция находилась в правом нижнем углу - вот где я получаю проблему. Если мои размеры экрана равны 1024x768, я бы подумал, что мои кросс-вставки должны быть чем-то вроде (сверху: 500, слева: 500, внизу: 0, справа: 0) ... нет? Разве это не даст мне представление коллекции в правом нижнем углу? –

+0

Perfect - это помогает много - спасибо! –

ответ

1

Для чего вы пытаетесь достичь, используя звуки автоматической компоновки, это будет ваш лучший вариант. В качестве альтернативы вы можете установить рамку UICollectionView «ы быть в нижнем правом углу, как так:

collectionView!.frame = CGRect(x: self.view.frame.size.width - collectionView!.frame.size.width, y: self.view.frame.size.height - collectionView!.frame.size.height, width: 400, height: 400) 

Но это скорее временное решение, и должны быть рассмотрены для каждого устройства, и будущее устройства, так макет.