2012-10-09 71 views
1

我爲我的視圖實現了表視圖控制器。作爲蘋果文檔中的具體細節,我在表中使用了UITableViewCellStyleSubtitle作爲我的單元格。UItable查看單元格textLabel,detailTextLabel和UIImage

我需要的是一個單元格包含左側的小化身,大膽的textLabel和更小的detailTextLabeltextLabeldetailTextLabel都是多行,不只一行。

我正在嘗試從link的教程,但模擬器只顯示textLabel

這裏是我的cellForRowAtIndexPath:方法:

(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

static NSString *CellIdentifier = @"Cell"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease]; 
    } 
cell.textLabel.text = [newsTitle objectAtIndex:indexPath.row]; 
    cell.textLabel.font = [UIFont boldSystemFontOfSize:18]; 
    cell.textLabel.numberOfLines = ceilf([[newsTitle objectAtIndex:indexPath.row] sizeWithFont:[UIFont boldSystemFontOfSize:18] constrainedToSize:CGSizeMake(300, MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap].height/20); 

    cell.detailTextLabel.text = [newsDescription objectAtIndex:indexPath.row]; 
    cell.detailTextLabel.font = [UIFont systemFontOfSize:14]; 
    cell.detailTextLabel.numberOfLines = ceilf([[newsTitle objectAtIndex:indexPath.row] sizeWithFont:[UIFont systemFontOfSize:14] constrainedToSize:CGSizeMake(300, MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap].height/20); 
return cell; 
} 

這裏是heightForRowAtIndexPath:方法:

(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

    NSString *titleString = [newsTitle objectAtIndex:indexPath.row]; 
    NSString *detailString = [newsDescription objectAtIndex:indexPath.row]; 
    CGSize titleSize = [titleString sizeWithFont:[UIFont boldSystemFontOfSize:18] constrainedToSize:CGSizeMake(300, MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap]; 
    CGSize detailSize = [detailString sizeWithFont:[UIFont systemFontOfSize:14] constrainedToSize:CGSizeMake(300, MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap]; 

    return detailSize.height+titleSize.height; 

} 

注:陣列newsTitle保持textLabel內容,newsDescriptiontextDetailLabel。它尚未包含頭像。我非常感謝,如果有人可以幫助我解決這個問題,並將小型化身添加到這個表格視圖單元格。

+0

也u必須設置爲textLabel和detailTextLabel的高度'cellForRowAtIndexPath'方法.. – vishy

+0

做你的解決方案或不? – Pratik

回答

0

你應該創建一個自定義UITableViewCell子類,有一個UIImageView您可以與您所選擇的cellForRowAtIndexPath:UIImage填充屬性。我建議添加UIImageView作爲contentView的子視圖,然後將單元格的縮進調整爲UIImageView的寬度以及一些填充。這具有細胞的全部內容移動到右側,以騰出空間爲您的圖像的效果:

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { 
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 

    if (self) { 
     // make room for the icon 
     self.indentationLevel = 1; 
     self.indentationWidth = kIconWidth + kIconPadding; 

     _iconImageView = [[UIImageView alloc] initWithFrame:CGRectMake(kIconPadding, kIconPadding, kIconWidth, kIconWidth)]; 
     [self.contentView addSubview:_iconImageView]; 
    } 

    return self; 
} 
相關問題