2015-09-05 4 views
1

Привет Я использую sizetofit на моем поле UILabel, он отлично работает, когда я загружаю контроллер таблицы, но затем начинает вырезать буквы и переносить их на другую строку при прокрутке вверх и вниз. Вот код, который я использую в CellForRowAtIndexPath:UItableviewcontroller SizeToFit не работает в поле UILabel

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"subjectCell" forIndexPath:indexPath]; 

    // Configure the cell... 

    // Load and display subject photo image 
    UIImageView *subjectImageView = (UIImageView *)[cell viewWithTag:200]; 
    subjectImageView.image = [UIImage imageNamed:subjectImages[indexPath.row]]; 


    // Load and display subject label 
    UILabel *subjectLabel = (UILabel *)[cell viewWithTag:201]; 
    subjectLabel.text = [subjectItems objectAtIndex:indexPath.row]; 
    [subjectLabel sizeToFit];// call this to fit size of the label according to text 



    return cell; 
} 

А вот снимок экрана моего tableviewcontroller изначально загружен:

enter image description here

А вот после прокрутки вверх и вниз, вы можете увидеть описание есть были сокращены

enter image description here

Спасибо за любую помощь, вы можете г чтобы решить эту проблему.

Приветствие

Carson

+0

Показать метод 'cellForRowAtIndexPath:'. – rmaddy

+0

@rmaddy см. Выше. Я сейчас показываю полный cellForRowAtIndexPath – Kitcc

+0

Попробуйте 'setNeedDisplay' после' sizeToFit' – anhtu

ответ

1

Использование sizeToFit для UILabel может вызвать беспорядок, как это в UITableView с повторным использованием клетками. Один из решений, о котором я могу думать, - установить ширину рамки для вашей ширины ярлыка, прежде чем вы вызовете sizeToFit, и вам нужно делать это каждый раз, когда вы назначаете текст этикетке. Он должен выглядеть примерно так:

CGRect frame = subjectLabel.frame; 
frame.size.width = 100.0; //try to adjust this value 
subjectLabel.frame = frame; 
[subjectLabel sizeToFit]; 
+1

Большое спасибо, это исправлено :-) – Kitcc

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