У меня есть UICollectionView, который у меня установлен, все работает отлично (выбор, заголовки и т.д.), однако я хочу изменить направление прокрутки в некоторых ситуациях.
Короче, если я войду в панель рассказов и изменим scrollDirection, он отлично работает, но я хочу сделать это программно!
Я попытался изменить направление прокрутки в виде коллекции непосредственно с помощью
[myCollectionView setScrollDirection:....and so on.......
Но это не работает, я не могу найти scrollDirection или подобное там.
Я также попытался настроить раскладку потока, но я уверен, что делаю это неправильно (т.е. пытается установить ViewLayout в FlowLayout).
UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc]init];
[flowLayout setScrollDirection:UICollectionViewScrollDirectionVertical];
[myCollectionView setCollectionViewLayout:flowLayout];
Это сбой с большим количеством проблем с ограничениями, и я подозреваю, что мне нужно сделать намного больше работы с flowLayout (из того, что я обнаружил, что это немного выше меня прямо сейчас).
Следует также отметить, что я использую пользовательскую ячейку, верхние и нижние колонтитулы.
Короче, есть ли простой способ сделать это или нет? ИЛИ кто-нибудь знает хороший учебник по макету потока?
ИЗМЕНИТЬ
Я настраиваю представление коллекции как таковое;
[myCollectionView setDataSource:self];
[myCollectionView setDelegate:self];
Я реализую эти методы делегатов, и все отлично работают
viewForSupplementaryElementOfKind
numberOfSectionsInCollectionView
numberOfItemsInSection
cellForItemAtIndexPath
didSelectItemAtIndexPath
Я добавил DataSource и Delegate в .h, а также делегат FlowLayout, но я не уверен, что я должен иметь для последнего.
Большая часть визуальной компоновки выполняется в Story Board, есть несколько вещей, таких как шрифт, размер и цвет, которые я делаю программно.
ДРУГОЕ ИЗОБРАЖЕНИЕ
Это ошибка, когда я пытаюсь изменить FlowLayout, я также получаю это при попытке и недействительности макета.
Невозможно одновременно удовлетворить ограничениям. Вероятно, хотя бы одно из ограничений в следующем списке - это тот, который вы не хотите. Попробуйте это: (1) посмотрите на каждое ограничение и попытайтесь выяснить, чего вы не ожидаете; (2) найти код, который добавил нежелательные ограничения или ограничения и исправить его. (Примечание. Если вы видите NSAutoresizingMaskLayoutConstraints, который вы не понимаете, обратитесь к документации для свойства UIView, переводимой вAutoresizingMaskIntoConstraints)
"<NSAutoresizingMaskLayoutConstraint:0x89967f0 h=--& v=--& V:[menuCell:0x8991700(50)]>",
"<NSLayoutConstraint:0x8991200 menuCell:0x8991700.bottom == UILabel:0x8992be0.bottom + 100>",
"<NSLayoutConstraint:0x898fd50 UILabel:0x8992be0.top == menuCell:0x8991700.top + 3>"
Будет пытаться восстановить, нарушая ограничение
Перерыв на objc_exception_throw, чтобы поймать это в отладчике. Также могут быть полезны методы в категории UIConstraintBasedLayoutDebugging в списке UIView.