2013-05-17 59 views
1

我有一個表格視圖與分組的單元格。我希望這個單元格包含一個圖像。這裏是我的代碼中插入圖像,使之適合在細胞:不能適合tableViewCell中的圖像

   logoCell = [tableView dequeueReusableCellWithIdentifier:LogoCellIdentifier]; 
      if (logoCell == nil) { 
       logoCell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:LogoCellIdentifier]; 
      } 

      UIImageView *imgView=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, logoCell.frame.size.width, 80)]; 
      [imgView setImage:image]; 

      [logoCell.contentView addSubview:imgView]; 

但我的形象比單電池的寬度大時的tableView是顯示器。我怎樣才能使它適合細胞?

回答

2

添加圖像作爲tableViewCell的背景顏色,你會得到漂亮的圓角。否則,分組的單元格不會掩蓋圖像。您還需要設置UIImageView的contentMode,以便將所有內容都縮放到單元格中。

UIImageView *imgView=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, logoCell.frame.size.width, 80)]; 
imgView.contentMode = UIViewContentModeScaleAspectFit; 
cell.backgroundColor = [UIColor colorWithPatternImage:imgView.image]; 
+0

謝謝,這正是我想要的 – louftansa

0

創建UIImageView這樣:

UIImageView *imgView = [[UIImageView alloc] initWithImage:image]; 
imgView.frame = CGRectMake(0, 0, logoCell.frame.size.width, 80); 

附註 - 確保您不添加每次新UIImageView到細胞。你只想添加一次。滾動時單元格會被重用。根據您如何實現代碼,您可以輕鬆地將多個圖像視圖添加到單元格。

+0

感謝您的注意,我會牢記這一點。 – louftansa

1

如何將圖像視圖添加到UITableViewCell s取決於您想要對圖像視圖執行的操作。如果您想讓圖像成爲單元格內容的一部分,請在創建單元格時添加它。

logoCell = [tableView dequeueReusableCellWithIdentifier:LogoCellIdentifier]; 
if (logoCell == nil) { 
    logoCell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:LogoCellIdentifier]; 

    // ADD IMAGEVIEW ONLY WHEN CREATING CELL 
    UIImageView *imgView=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, logoCell.frame.size.width, 80)]; 
    [logoCell.contentView addSubview:imgView]; 

    // DONT ALLOW IMAGE OVERFLOW 
    imgView.clipsToBounds = YES; 
} 

// SET YOUR IMAGE EVERY TIME 
[imgView setImage:image]; 

如果你想將其設置爲背景視圖,您應該設置單元格的backgroundView財產tableView:willDisplayCell:forRowAtIndexPath。確保圖像視圖與單元大小相同。

UIImageView *imgView = [[UIImageView alloc] initWithFrame: cell.bounds]; 
imgView.image = image; 
cell.backgroundView = imgView;