UITableViewCell 中的 UILabel - 截断信息

Posted

技术标签:

【中文标题】UITableViewCell 中的 UILabel - 截断信息【英文标题】:UILabel inside UITableViewCell - Cuts off information 【发布时间】:2013-12-14 20:14:12 【问题描述】:

我正在开发一个 ios 应用程序以在 UITableView 中显示有关我的 facebook 朋友的信息,但我遇到了问题。我使用带有 2 个 UILables(字段和描述)的自定义单元格:

在字段标签中,我设置了教育、工作等信息的类别。在描述标签中,我设置了相应的信息:

我的问题是标签不适合信息的大小并切断了部分信息,如上所示。我厌倦了寻找解决方案,但我一无所获。我已经尝试实现此答案 (Adjust UILabel height depending on the text) 中的代码但无法正常工作!

有什么建议吗? 提示

【问题讨论】:

您提到的答案看起来很有希望,请发布您尝试过的代码。另一种选择是 UITextField。不过,有点重量级。 【参考方案1】:

UILabels 很好,但你为什么不使用UITextView?您可以在 textView 中使用 \n,我可以看到标签中有大文本,根据您的文本大小缩放字体大小并不是一个很好的决定。只需将 textView 添加到您的自定义单元格,禁用用户交互,将可编辑设置为 NO,您就完成了。您还可以使用此代码更改单元格高度,具体取决于文本大小:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
    //Load text in NSString which you want in Cell's textView.
    NSString *cellText;

    cellText = @"Insert your text here";

    //define font for textView...
    UIFont *cellFont = [UIFont fontWithName:@"Georgia" size:19.0];//change your font here

    CGSize constraintSize = CGSizeMake(330.0f, MAXFLOAT);

    CGSize labelSize_val = [cellText sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:NSLineBreakByWordWrapping];

    return labelSize_val.height + 20;
 

【讨论】:

【参考方案2】:

您在Adjust UILabel height depending on the text 找到的答案是一个好的开始。

另外确保您设置行高:https://developer.apple.com/Library/ios/documentation/UIKit/Reference/UITableViewDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intfm/UITableViewDelegate/tableView:heightForRowAtIndexPath:

另一个需要注意的地方是你的 UILabel 的自动调整大小设置。

【讨论】:

以上是关于UITableViewCell 中的 UILabel - 截断信息的主要内容,如果未能解决你的问题,请参考以下文章

更改 UITableViewCell 中的对象也更改了重用 UITableViewCell 的对象

确定 UITableViewCell 中的 UIButton

UITableViewCell 事件中的 UIButton 不起作用

UITableViewCell 中的 UICollectionView

UITableVIewCell 中的 UIScrollView 不会滚动

UITableViewCell 中的 UITextField - UIButton