У меня есть UICollectionViewController, который отображает блоки телефонных номеров (см. Изображение). Когда загружаются представления, все они кажутся точными, однако, когда я либо начинаю прокрутку, меняя вращение, либо выполняю функцию поиска, которая изменяет (изменяемый) массив, в котором хранятся данные, я вижу эти искаженные метки. Я действительно думал, что это может быть симулятор iOS, однако, глядя на него, это, похоже, проблема с позиционированием UICollectionViewCells.iOS, UICollectionViewCell malformed UILabel
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
static NSString *identifier = @"cell";
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:identifier forIndexPath:indexPath];
cell.backgroundColor = [UIColor grayColor];
cell.layer.cornerRadius = 5;
[cell setClipsToBounds: YES];
CGRect cellBound = CGRectMake(25, 12.5, 150, 12.5); // x, y, w, h
UILabel *title = [[UILabel alloc] initWithFrame:cellBound];
NSString *number = [[searchNumbers objectAtIndex:indexPath.row] valueForKey:@"number"];
number = [number stringByReplacingOccurrencesOfString:@"+44" withString: @"0"];
title.text = number;
[cell addSubview:title];
return cell;
}
Следует отметить, что я использую UICollectionViewFlowLayout
вы совершенно правы :) Мой ответ просто объясняет, что не так, как это сделать правильно, поддержал! – Woodstock
очень хороший способ достижения этого :) –