Просто начните с UICollectionView
. Я использовал IB для создания простого UICollectionView
в UIViewController
. Он прокручивается горизонтально под пейджинг. Я разместил простой UICollectionViewCell
внутри UICollectionView
. Я установил идентификатор повторного использования для ячейки.viewWithTag возвращает ноль при инициализации UICollectionViewCell
Я разместил UILabel
с меткой 100 внутри UICollectionViewCell
.
В viewDidLoad
, я называю:
[_collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"Thing"];
Позже я пытаюсь инициализировать ячейки следующим образом:
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Thing" forIndexPath:indexPath];
cell.backgroundColor = [UIColor greenColor];
UILabel *nameLabel = (UILabel *)[cell viewWithTag:100];
nameLabel.text = @"Bogus";
return cell;
}
Когда я запустить приложение, вид нагрузок правильно; Я могу прокручивать по горизонтали через 2 ячейки. Я вижу уродливый зеленый цвет, идентифицирующий каждую ячейку.
Однако метод viewWithTag
возвращает nil
, и поэтому текст nameLabel не задан.
Почему?
Обратите внимание, что я также попытался определить пользовательский подкласс UICollectionViewCell
и вызвать с ним registerClass. В IB я меняю класс ячеек на пользовательский подкласс, и я связываю UILabel
с выходом UILabel
в подклассе.
Но это также не работает. (Я бы предпочел избегать подкласса подкласса в любом случае, потому что нет необходимости определять классы только для того, чтобы удерживать IBOutlets
.)
Я думаю, что мне не хватает чего-то очевидного здесь.
Аналогичная проблема описана здесь:
Trouble accessing Image from instance of UICollectionViewCell
Где вы создаете UILabel? – Odrakir
UILabel настроен в Interface Builder. Я не собираюсь выделять его в коде. Я думал, что viewWithTag должен получить созданный экземпляр. Вот как это работает с UITableView. – Daniel
Вы назначили reuseIdentifier для прототипа CollectionViewCell в своем nib? – chandu