2015-04-06 3 views
0
if (indexPath.row == 2) 
{ 
     RestaurantTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"RestaurantCell"]; 
     if (!cell) 
     { 
      [tableView registerNib:[UINib nibWithNibName:@"RestaurantCell" bundle:nil] forCellReuseIdentifier:@"RestaurantCell"]; 
      cell = [tableView dequeueReusableCellWithIdentifier:@"RestaurantCell"]; 
      CAGradientLayer *gradient = [CAGradientLayer layer]; 
      gradient.frame = cell.gradientView.bounds; 
      gradient.colors = [NSArray arrayWithObjects:(id)[[UIColor clearColor] CGColor], (id)[[UIColor blackColor]CGColor], nil]; 
      [cell.gradientView.layer insertSublayer:gradient atIndex:0]; 
      cell.gradientView.alpha = 0.9; 
     } 

     NSData *imgData2 = [NSData dataWithData:restaurantPhotoArray[1]]; 
     cell.restaurant2Photo.image = [UIImage imageWithData:imgData2]; 
     cell.restaurant2Photo.contentMode = UIViewContentModeScaleAspectFill; 
     [cell.restaurant2Photo setClipsToBounds:YES]; 

     NSDictionary *morning2 = [[NSDictionary alloc]initWithDictionary:NorthRestaurantsArray[1]]; 
     cell.restaurant2Name.text = morning2[@"name"]; 
     cell.restaurant2Name.numberOfLines = 0; 
     [cell.restaurant2Name sizeToFit]; 
} 

У меня есть пользовательская ячейка, которая реализована в cellForRowAtIndexPath с кодом выше. Когда таблица отображается, restaurant2Photo отображает указанное изображение, а правильный текст установлен в ресторан2Name, однако sizeToFit не влияет на ярлык, поэтому его размер остается постоянным, как определено в файле .xib. У меня есть другая пользовательская ячейка, которая отображается в indexPath 0 и 1, где sizeToFit работает нормально, однако, когда она попадает в indexPath 2, а TableTableViewCell sizeToFit не работает. Кто-нибудь может предположить, почему это может произойти? Спасибо за любую помощь заранее :)Невозможно изменить размер UILabel в пользовательском UITableViewCell

+0

Ячейка, которую вы загружаете в Indexpath 0 и 1, встроена в XIB? – itsji10dra

+0

Да, точно так же, как indexPath 2 – RodMatveev

+0

Вы проверили, что contentView имеет конечный запас 0 px и нижнее поле 0 px с его надписью? –

ответ

2

Возможно ваш бобов файла AutoLayout включено.

В вашем методе пользовательские ячейки awakeFromNib: написать следующее

[self.restaurant2Name setTranslatesAutoresizingMaskIntoConstraints:YES]; 

и это будет делать работу за вас.

+1

Большое вам спасибо: D Я полностью забыл, что AutoLayout был включен, когда я впервые создал файл .xib – RodMatveev

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