У нас есть UICollectionView
, у которого есть прототип ячейки на раскадровке. Ячейка имеет в ней UILabel
(«label
»), которая позиционируется без автовыброса.Изменение положения метки в UICollectionViewCell
Мы установили рамку этикетки условно в -collectionView:cellForItemAtIndexPath:
с setFrame, как это:
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView
cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
CategoryCell *cell;
cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Category" forIndexPath:indexPath];
...
if (self.isViewTypeList) {
[((CategoryCell *)cell).label setFrame:FRAME_RECT];
}
...
return cell;
}
Мы осмотрели его, и кажется, что в первую очередь это вызывает лейбла -setFrame:
с раскадровке значения, когда это попадает на dequeing, тогда наш код следует, и это правильно устанавливает новые кадры. Другого вызова нет, кроме этого, но ярлык остается в исходном положении на экране.
Что случилось? Почему новый фрейм установлен неправильно? Что-то другое перевернуло? Нужно ли мне ретранслировать или обновлять его?
Настройка других свойств ячейки (например, цвет фона) отлично работает, поэтому это не может быть проблемой. – gklka