2015-04-06 99 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顯示指定的圖像,正確的文本設置爲restaurant2Name,但sizeToFit對標籤沒有影響,因此它的大小保持不變,如.xib文件中所定義。我有另一個自定義單元格顯示在indexPath 0和1,其中sizeToFit工作正常,但是當它到達indexPath 2和RestaurantTableViewCell sizeToFit不起作用。有人能夠提出爲什麼會發生這種情況嗎?感謝提前任何幫助:)無法更改自定義UITableViewCell中的UILabel的大小

+0

您在Indexpath 0&1加載的單元是否構建在XIB中? – itsji10dra

+0

是的,與indexPath 2完全相同 – RodMatveev

+0

你是否檢查過contentView的超級視圖有0 px尾部邊距和0 px底部邊距? –

回答

2

可能是你筆尖文件自動版式啓用。

在您的自定義單元格awakeFromNib:方法編寫以下

[self.restaurant2Name setTranslatesAutoresizingMaskIntoConstraints:YES]; 

,這會爲你做的工作。

+1

非常感謝你:D我完全忘記了當我第一次創建.xib文件時啓用了AutoLayout – RodMatveev

相關問題