Я пишу приложение для iOS для клиента, основное представление - это представление таблицы, и я заполняю ячейки текстом, так же, как большинство клиентов Twitter для iOS.
Я создал собственный вид ячейки с 3 метками, и я заполняю эти метки текстами.Размер одной из меток должен автоматически изменяться в зависимости от объема текста (максимум 140 символов).
Это прекрасно работает, пока я не прокручиваю список вверх / вниз, когда текст либо расширяется до одной полной строки (как метка расширилась), ИЛИ занимает только часть пространства, поэтому он заканчивается глубже и переполняется вдругие метки (у меня есть "Clip Subviews", включенные согласно другому подобному вопросу SO)
Таким образом, когда таблица и ее данные загружаются впервые, экран выглядит так:
перед прокруткойhttp://lloydsparkes.co.uk/files/iOS-BeforeScrolling.png
И после небольшой прокрутки это выглядит так:
после прокрутки http://lloydsparkes.co.uk/files/iOS-AfterScrolling.png
Так что кажется, что размер метки изменяется во время прокрутки (возможно, из-за того жеповторное использование ячейки?) и изменение размера обратно до правильного размера.
Мой код для заполнения ячейки:
-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *myID = @"customCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:myID];
if(cell == NULL) {
[[NSBundle mainBundle] loadNibNamed:@"CustomCellView" owner:self options:nil];
cell = customCell;
self.customCell = nil;
}
Post *p = [posts objectAtIndex:indexPath.row];
UILabel *label = (UILabel*)[cell viewWithTag:15];
label.text = p.Name;
label = (UILabel*)[cell viewWithTag:10];
label.text = p.Text;
[label sizeToFit];
label = (UILabel*)[cell viewWithTag:20];
label.text = [p Source];
//[cell layoutSubviews];
return cell;
}
Итак, что я спрашиваю, что является причиной этой проблемы?и как это можно решить?