我有一个UITableViewCell
,它是UITableViewCellStyleDefault
。当我尝试放置比 更长的文本时UITableViewCell
,它会截断它。如何使单元格扩展以容纳此文本?
问问题
2206 次
3 回答
2
我没有尝试完全按照您的要求做,但它可能会是这样的:
您需要根据其中文本字符串的长度更改视图的大小。
表视图委托(您的视图控制器)应该实现
- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
Message *msg = (Message *)[messages objectAtIndex:indexPath.row];
CGSize size = [[msg text] sizeWithFont:[UIFont fontWithName:@"Helvetica" size:kLabelFontSize]
constrainedToSize:CGSizeMake(220.0f, 480.0f)
lineBreakMode:UILineBreakModeTailTruncation];
CGFloat minHeight = 20.0f;
CGFloat height = size.height > minHeight ? size.height : minHeight;
return height;
}
它告诉视图使每一行有多高。
您还需要类似地调整 UITableViewCell 标签框架的大小。
于 2010-10-13T03:29:02.877 回答
1
你不能扩大单元格的宽度超过 iphone 的屏幕......你可以做的是 1> 缩小字体 2> 让你的文本多行
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
}
CGRect contentRect = CGRectMake(80.0, 0.0, 240, 40);
UILabel *textView = [[UILabel alloc] initWithFrame:contentRect];
textView.text = mytext;
textView.numberOfLines = 2;
textView.textColor = [UIColor grayColor];
textView.font = [UIFont systemFontOfSize:12];
[cell.contentView addSubview:textView];
[textView release];
于 2010-03-27T07:06:33.937 回答
0
我认为所有单元格都需要具有相同的高度和宽度。UITableViewCells
您可以使用该tableView's rowHeight
属性更改高度。
例如,如果您子类化UITableViewController
self.tableView.rowHeight = 100;
另一种选择是添加自定义UILabel
作为单元格 contentView 的子视图,如前所示。
于 2010-03-27T07:14:40.247 回答