这是在iPhone 0S 2.0上.2.1的答案也很好,但我不知道有关表的任何差异.
感觉应该可以在不创建自定义单元格的情况下获取文本,因为默认情况下UITableViewCell包含a UILabel.我知道如果我创建一个自定义单元格,我可以使它工作,但这不是我想要实现的 - 我想了解为什么我当前的方法不起作用.
我已经发现标签是按需创建的(因为单元格支持文本和图像访问,所以它不会在必要时创建数据视图),所以如果我做这样的事情:
cell.text = @""; // create the label
UILabel* label = (UILabel*)[[cell.contentView subviews] objectAtIndex:0];
Run Code Online (Sandbox Code Playgroud)
然后我得到一个有效的标签,但设置numberOfLines(和lineBreakMode)不起作用 - 我仍然得到单行文本.UILabel文本中有足够的高度显示 - 我只是为高度返回一个较大的值heightForRowAtIndexPath.
我需要能够在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)
这没有用,它显示了单元格上的整个字符串,但单元格高度根本不受影响.
我已经采用了使用for循环动态生成的UIlabel,每个类型的diff文本都在标签中分配,我想根据文本动态地给出UILabel大小.
在Swift中有没有简单的解决方案?
我是Swift的新手,我不知道如何让我的UILabel显示所有文本.
以下是我的标签在我的故事板中的样子:
如您所见,部分文本被省略.我可以通过拖动UILabel来显示所有文本以调整大小.但是,在运行时,如果文本是动态设置的,我如何调整标签大小以便它可以显示更多的文本?
我试过UILabel.sizeToFit()但似乎没有改变任何东西.
ios ×4
objective-c ×3
iphone ×2
swift ×2
cocoa-touch ×1
iphone-sdk-2 ×1
uikit ×1
uitableview ×1