UILabel в пользовательском UICollectionViewCell всегда имеет значение null, не может обновлять текст

Я создал представление коллекции очень просто для примера проекта представления коллекции Apple. У меня есть представление коллекции в контроллере представления в раскадровке, и я установил метку внутри ячейки представления коллекции в верхней правой части представления коллекции. Я подключил это к IBOutlet в своей пользовательской ячейке. Вот соответствующий код:

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self.workoutView registerClass:[Cell class] forCellWithReuseIdentifier:@"Cell"];
    ...
}

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
    if (collectionView == self.collView) {
        Cell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath];    
        cell.segmentTitle.text = @"some text";
        cell.backgroundColor = [UIColor whiteColor];
        return cell;
    }
    return nil;
}

Я ставлю точку останова после части segmentTitle.text, а segmentTitle всегда равен нулю. Соответственно то что я вижу в симуляторе это пустые белые ящики. Что я пропустил?


person brodney    schedule 05.04.2013    source источник


Ответы (2)


UICollectionViewCell внутри StoryBoard не нужно регистрировать класс, просто выберите повторное использование идентификатора в StoryBoard. Удалите эту строку:

   // [self.workoutView registerClass:[Cell class] forCellWithReuseIdentifier:@"Cell"];

И убедитесь, что вы подключаетесь правильно:

-Выберите тип класса UICollectionViewCell в StoryBoard to Cell

-Перетащите UILabel в Cell и подключитесь к Cell.h

-Введите идентификатор повторного использования

person LE SANG    schedule 05.04.2013
comment
Удаление строки регистра и использование идентификатора повторного использования из раскадровки исправили это. Спасибо! - person brodney; 05.04.2013
comment
Это работает. Иногда в раскадровке слишком много волшебства. - person Albin Stigo; 08.08.2014
comment
Извините, что вы подразумеваете под -Введите идентификатор повторного использования? Я удалил первую строку, но ничего не вижу (сделал другие шаги) - person LS_; 11.02.2015
comment
@Signo Введите это в свою раскадровку - person LE SANG; 11.02.2015
comment
да, нашел :) теперь мне просто нужно понять, почему ширина и высота не обновляются, и я в порядке: P спасибо! - person LS_; 11.02.2015
comment
Спасибо, это решило мою ошибку ... Я потратил на это 1,5 драгоценных часа. - person Arpit B Parekh; 28.07.2015
comment
пытался выяснить, почему это не работало в течение нескольких часов. удаление registerClass сработало - person grayson; 26.01.2017

MainFeedCollectionView.registerClass(CollectionViewCell.self, forCellWithReuseIdentifier: "CollectionViewCell")

Я удалил эту строку из своего кода, теперь она работает нормально...

person Balagurubaran    schedule 25.11.2014