У меня есть UICollectionView внутри обычного UIViewController.Ошибка UICollectionView и прокрутки программы
Внутри коллекции я разработал многоразовый пользовательский интерфейс для коллекционных изображений в раскадровке.
Внутри коллекции коллекции есть ярлык, который отображает ячейки indexpath.row и 5 UIButtons, которые, если они выбраны, меняют цвет и остаются выбранными.
Я создал коллекционное представление, так что если запрашивается более 30 ячеек, коллекция будет горизонтально отображаться, макет коллекции также горизонтален.
Приложение работает красиво, правильно прокручивается и правильно устанавливает ячейки.
Проблема я имею, когда вы выбираете, например кнопку A в ячейке 1 в collectionviewcell (который, предполагают, чтобы макет 100 ячеек) и страницы более двух страниц (60+ клеток) на стр.3 , выбрана кнопка A в ячейке номер 75. И еще больше, если вы прокрутите до конца (100 ячеек) и прокрутите страницу назад до стр. 3, кнопка A в ячейке номер 75 на более длительное время, но кнопка A в ячейке номер 64 выбрана.
Вот некоторые фрагменты кода: cell.m - управляет действием от пользователя.
- (IBAction)bubbleButtons:(id)sender {
for(UIButton *bubbleCell in self.bubbleButtons) {
if (bubbleCell.touchInside && !bubbleCell.selected) {
bubbleCell.selected = YES;
} else if (bubbleCell.touchInside && bubbleCell.selected) {
bubbleCell.selected = NO;
}
}
}
MainViewContoller.m - устанавливает клетку из UICollectionViewCell сделана в раскадровке
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView
cellForItemAtIndexPath:(NSIndexPath *)indexPath {
Cell *cell1;
cell1 =[collectionView dequeueReusableCellWithReuseIdentifier:zCellID
forIndexPath:indexPath];
cell1.numMainLabel.text = [NSString stringWithFormat:@"%d |",indexPath.row+1];
return cell1;
Я не очень понимаю, что это неправильно или что является причиной этой ошибки, я предполагаю, что он имеет TODO с точкой зрения перезагружается, когда новая часть видимости становится видимой, но это всего лишь предположение. Помощь будет принята с благодарностью.
- Zach
Так я должен создать собственный многоразовый вид внутри resablecell? В конечном итоге мне нужно сохранить выбранную кнопку и узнать, какая кнопка выбрана пользователем в OutletConnection UIButtons bubbleButtons. – ZBurm
С помощью многоразового просмотра я имел в виду многоразовую ячейку. Вам нужно сохранить выбор, иначе он не будет обещан. Вы можете сохранить выделение в подклассе многократного использования или лучше даже сохранить его в модальном месте где. Помните, что представление никогда не используется для хранения информации. –
Но как бы вы определили, какая кнопка из разъема outlet была выбрана, а затем сохраните этот выбор для конкретной ячейки и сохраните выбор в, возможно, словаре? Поскольку путь индекса ячейки поступает от MainViewController, как бы класс подкланов ячейки знал, в какой ячейке была выбрана кнопка? – ZBurm