UILineBreakModeWordWrap不适用于UITableViewCellStyleValue2。请看截图

时间:2011-12-07 10:31:08

标签: ios uitableview uilabel

UILineBreakModeWordWrap不适用于UITableViewCellStyleValue2。请看我的截图。

- (UITableViewCell *)tableView:(UITableView *)tableView_ cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
 UITableViewCell *cell = [tableView_ dequeueReusableCellWithIdentifier:@"any-cell"];
 if(cell == nil)
 {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue2 reuseIdentifier:@"any-cell"] autorelease];
 }
  cell.textLabel.text = @"Address";
  cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;
  cell.textLabel.numberOfLines = 0;

  cell.detailTextLabel.text = @"1838 East Wardlow St (Corner of Cherry & Wardlow)";
  cell.detailTextLabel.lineBreakMode = UILineBreakModeWordWrap;
  cell.detailTextLabel.numberOfLines = 0;

   return cell;
}

结果:

enter image description here

你有解决方案吗?

2 个答案:

答案 0 :(得分:4)

UILineBreakModeWordWrap确实可以查看您的屏幕截图。

发生的事情是UITableViewCell的高度不够大。

您可以计算所需的高度,并在TableView的委托的tableView:heightForRowAtIndexPath:方法中设置它,如下所示:

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

    NSString *cellText = @"1838 East Wardlow St (Corner of Cherry & Wardlow)";

    CGSize textSize = [cellText sizeWithFont:LABEL_FONT constrainedToSize:LABEL_SIZE lineBreakMode:LABEL_LINEBREAKMODE];

    return textSize.height; // Add margins accordingly
}

答案 1 :(得分:1)

使用iOS 6 +使用NSLineBreakByWordWrapping而不是UILineBreakModeWordWrap。