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;
}
结果:
你有解决方案吗?
答案 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。