2015-07-15 4 views
0

Я использую UICollectionView в своем проекте. Я начал делать все это программно (быстро). это мой код, который инициирует и добавить CollectionView к экрану:UICollectionView от портрета к пейзажу

var collectionView: UICollectionView! 
override func viewDidLoad() { 
    super.viewDidLoad() 

    let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout() 
    layout.sectionInset = UIEdgeInsets(top: COLLECTION_VIEW_DISTANCE_TOP, left: COLLECTION_VIEW_DISTANCE_LEFT, bottom: COLLECTION_VIEW_DISTANCE_BOTTOM, right: COLLECTION_VIEW_DISTANCE_RIGHT) 
    layout.itemSize = CGSize(width: 90, height: 120) 

    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 didRotateFromInterfaceOrientation(fromInterfaceOrientation: UIInterfaceOrientation) { 
    collectionView.frame = self.view.frame 
} 

Он работал, но при повороте iPhone она занимает около половины секунды, чтобы заполнить строки (это делает работу медленно, в уродливом виде) ,

Как это исправить?

ответ

0

Apple отказывается от метода willRotateMethod в SDK для iOS 8. так что вы пишете код в методе didRotateMethod, код которого вы напишете в viewDidLayoutSubviews, так что ваша проблема будет решена.

+0

Нет такого способа. Я попытался перекрывая этот метод: переопределения Func willRotateToInterfaceOrientation (toInterfaceOrientation: UIInterfaceOrientation, продолжительность: NSTimeInterval) { } , но он не работает для меня. –

+0

Спасибо вам большое! –

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