Вчера я разместил этот вопрос: https://stackoverflow.com/questions/23119494/what-is-the-best-way-to-dynamically-change-the-style-of-a-uicollectionview и получил 0 ответов.
Я решил немного поэкспериментировать. Что я пытаюсь сделать, так это изменить отображение представления коллекции по умолчанию в стиле сетки на отображение одного файла при нажатии UISegmentedControl.
Стиль сетки по умолчанию:
После нажатия на левый сегмент кнопки отображается представление одного элемента:
У меня есть готовый метод, который реагирует на касание каждого сегмента. Теперь я скрываю collectionView при нажатии на элемент управления сегментом и показываю его при повторном нажатии.:
- (void)displayTypeSegmentSelected
{
_selectedDisplayTypeIndex = [_displayTypeControl selectedSegmentIndex];
if (_selectedDisplayTypeIndex == 0) {
NSLog(@"Single file item view selected");
[_collectionView setHidden:YES];
} else {
NSLog(@"Grid style view selected");
[_collectionView setHidden:NO];
}
}
Это отлично работает, чтобы показать и скрыть мою коллекцию по умолчанию, и функциональность остальной части этого контроллера не затрагивается.
Возможные решения:
Теперь мне было интересно, есть ли способ создать другой collectionView с дизайном одного файла и отображать его всякий раз, когда collectionView по умолчанию скрыт. Он будет использовать тот же источник данных и вид подключения к контроллеру и просто работать.
Можно ли это сделать в конструкторе интерфейсов? Если да, то как мне это сделать?
Можно ли это сделать программно? Если да, то как мне это сделать?
Мне было интересно, следует ли изначально создавать оба объекта collectionView, а не по умолчанию в начале, и один файл только при нажатии на segmentControl.
Буду признателен за некоторые примеры или четкое объяснение. Весь день безуспешно изучал, как это сделать.
С уважением