【发布时间】:2012-11-05 03:56:06
【问题描述】:
我一直被告知,如果我有一个包含动态文本内容的 UILabel,我应该使用 SizeToFit,因为这样可以正确调整 UILabel。我使用了 sizeToFit,但它弄乱了我滚动后 UITableViewCell 上的文本标签。但是,在初始屏幕加载时,它们看起来不错。
在搞砸了几个小时后,我在某处读到其他人也遇到了同样的问题,并且他们使用了以下两行而不是 SizeToFit:
cell.message.lineBreakMode = UILineBreakModeWordWrap;
cell.message.autoresizingMask = UIViewAutoresizingFlexibleHeight;
它会起作用的。好吧,我做到了,我的 UILabel 很完美。但是我仍然很好奇为什么会这样?
所以现在我的代码如下所示:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"MessagesCustomViewCell";
MessagesCustomViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"MessagesCustomViewCell_iPhone" owner:self options:nil];
cell = [nib objectAtIndex:0]; //you can also loop thru or manually remember positions
}
NSArray * discussion = [self.messages objectAtIndex:indexPath.row];
cell.author.text = [discussion valueForKeyPath:@"author.name"];
cell.message.text = [discussion valueForKey:@"text"]; //DYNAMIC VARIABLE SIZED TEXT
cell.message.lineBreakMode = UILineBreakModeWordWrap;
cell.message.autoresizingMask = UIViewAutoresizingFlexibleHeight;
return cell;
}
【问题讨论】:
标签: ios uitableview