我有一些标签,我想调整它们的高度到文本,这是我现在为此写的代码
func heightForView(text:String, font:UIFont, width:CGFloat) -> CGFloat{
let label:UILabel = UILabel(frame: CGRectMake(0, 0, width, CGFloat.max))
label.numberOfLines = 0
label.lineBreakMode = NSLineBreakMode.ByWordWrapping
label.font = font
label.text = text
label.sizeToFit()
return label.frame.height
}
Run Code Online (Sandbox Code Playgroud)
编辑:
问题不在于这段代码,所以我的问题就在于问题本身.它可能对其他人有用!
我需要能够在UITableView中调整单个单元格的高度,以使其适合其详细标签中的文本量.
我玩了以下但是它对我不起作用:
如何在没有自定义单元格的情况下在UITableViewCell中包装文本
希望你能帮忙,谢谢.
编辑:
试图代码:
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;
cell.textLabel.numberOfLines = 0;
cell.textLabel.font = [UIFont fontWithName:@"Helvetica" size:17.0];
}
Run Code Online (Sandbox Code Playgroud)
和
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *cellText = @"Go get some text for your cell.";
UIFont *cellFont = [UIFont fontWithName:@"Helvetica" size:17.0];
CGSize constraintSize = CGSizeMake(280.0f, MAXFLOAT);
CGSize labelSize = [cellText sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];
return labelSize.height + 20;
}
Run Code Online (Sandbox Code Playgroud)
这没有用,它显示了单元格上的整个字符串,但单元格高度根本不受影响.
我想根据标签的高度和标签的高度调整单元格的高度.或者有什么方法可以根据输入的文本调整单元格的高度UITextView?
我UITableView在iPad上使用它,由于某种原因,UITableViewCell.textLabel即使有足够的空间来显示文本,它的文本也会被截断.我尝试了以下所有方法,但都没有修复它:
[cell sizeToFit]设置文本后调用[cell.textLabel setNumberOfLines:0]和[cell.textLabel setLineBreakMode:NSLineBreakByWordWrapping]我还没有尝试子类化UITableViewCell并在layoutSubviews方法中显式设置框架.试图避免这种情况,因为我觉得应该有更好的解决方案.我也不想调整文本大小 - 有足够的空间来适应文本的全字体大小.

我有一个自定义表格单元格,其中包含许多UILabel.在运行时,我正在调整标签的高度以适应其内容sizeWithFont:constrainedToSize:lineBreakMode:并相应地重新定位它们.单元格中的最后一个标签包含大量文本,导致它换行,我有一个非常奇怪的问题.尽管sizeWithFont调用返回了正确的大小,并且我将UILabel的帧设置为该高度,但它会缩短几行.这个截图说明了我在说什么:

在此示例中,整个文本块的高度应为90(在Interface Builder中检查),这是从中返回的sizeWithFont.它也是UILabel框架设置的高度,我通过记录以及停止执行和检查值来验证.但是,正如您所看到的,尽管它正确地为它分配了空间,但它显然没有绘制完整的90像素高("编辑"上方的细黑线是表格单元格边框).我完全感到困惑.如果有人能够提供一些有关它为何如此表现的见解,我将非常感激.
我有一个RSS提要阅读器应用程序,每个单元格从RSS提要苹果网站的XML中的元素中收集标题.现在标题很长,所以我想做的是使用以下方法增加每个单元格的大小:
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return 80;
}
Run Code Online (Sandbox Code Playgroud)
使标题分成两行或多行并展开,但文字继续直行并切断.我怎样才能解决这个问题?