2016-11-04 2 views
0

У меня есть UICollectionView и пользовательский класс подкласса UICollectionViewCell, содержащий UILabel. В cellForItemAtIndexPath я дежурую, устанавливая текст UILabel и возвращаю ячейку как обычно.UILabel в UICollectionViewCell, не отображающийся на вновь выделенных ячейках

Когда он загружается, все выглядит правильно, но когда я прокручиваю текст ярлыка недавно перечеркнутой ячейки, пуст, даже если я вышел из строя, которая установлена, и это правильно.

Я не добавляю и не удаляю что-либо из ячейки и ничего не скрываю.

В качестве теста я установил цвет фона метки, а положение фона и размер выглядят правильно, поэтому я не думаю, что этикетка неуместна.

Любые идеи?

Я не уверен, что это актуально, но я использую Xcode 8.1, Swift 2.3 и вижу подобное поведение как на реальном iPad, так и на iPhone, а также на симуляторе.

Код, который @ Zac Гван попросил:

guard let cell = collectionView.dequeueReusableCellWithReuseIdentifier("Location Cell Vertical Left", forIndexPath: indexPath) as? LocationCollectionViewCellVertical else { 
    print("Couldn't get locationCollectionViewCellVertical") 
    return UICollectionViewCell() 
} 

Внутри защитного заявления никогда не вызывается.

...

cell.locationTitleLabel.text = originalString 

originalString всегда содержит правильную строку.

Update:

Странная часть является то, что если я перечисляю так что эти проблемные ячейки с экрана, а затем прокручивать таким образом, они снова видимыми, они отображаются правильно.

+0

Из вашего описания и теста, которое вы сделали, здесь все кажется хорошим. Может быть, вы можете опубликовать код, в котором вы деактируете и установите ярлык, чтобы мы могли помочь отладить? –

+0

К сожалению, я не могу опубликовать большую часть кода здесь, но это стандартный 'collectionView.dequeueReusableCellWithReuseIdentifier (« Location Cell Vertical Left », forIndexPath: indexPath) как? LocationCollectionViewCellVertical' и 'cell.locationTitleLabel.text = originalString' –

+0

Вы можете отредактировать свой вопрос, чтобы код там –

ответ

0

точка использование перерыв и в консоли ро yourLabelName и проверить кадр

+0

Запуск кадра, я получаю меньшую ширину, чем я ожидал, - меньше, чем все остальные ячейки. Как я уже упоминал, я вижу цвет фона в том месте, где я ожидаю увидеть ярлык, чтобы он был в правильном положении. –

0

[collectioView registerNib: [UINib nibWithNibName: @ расслоении "collectionViewCell": [NSBundle mainBundle]] forCellWithReuseIdentifier: @ "клетка"]. Для того, чтобы зарегистрировать перо файл.

+0

Спасибо за предложение, но я не думаю, что мне нужно сделать это, поскольку ячейка является прототипом в коллекции в раскадровке. Это верно? –

Смежные вопросы