ios - iOS 8 中单个 UITableViewCell 上有 2 个多行标签

标签 ios objective-c uitableview

我有一个场景,其中单个 UITableViewCell 有 2 个 UILable。我可以在其中包含来自服务器的长文本,这会导致两个标签同时成为多行。

我已经实现了自动布局并且

label.numberofline = 0;
tableVieww.estimatedRowHeight  = 100.0;
tableVieww.rowHeight = UITableViewAutomaticDimension;

但它只会导致一个标签展开,而不是两个标签都展开。请帮忙。

提前致谢

最佳答案

试试这个:

使用此代码计算行高

注意:ExtraHeight“H”

假设您的单元格高度为 100,并且该单元格中的标签高度为 20,则额外高度将为 80,因为此代码正在根据文本及其大小计算标签的高度。

您要将此代码放在 heightforRowatindexpath 中,这样 cell.label 就无法到达那里,所以只需传递文本并使用Method-2强>

方法 - 1:

-(CGFloat)setRowHeightWithLabel:(UILabel *)lbl withLabelText:(NSString *)lblText withExtraHeight:(CGFloat)H withFont:(CGFloat)fontSize
{
   CGFloat totalHeight;
   CGFloat lblWidth = lbl.frame.size.width;

   CGSize lblTextSize = [lblText boundingRectWithSize:CGSizeMake(lblWidth, MAXFLOAT)
                                           options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading)
                                        attributes:@{NSFontAttributeName: [UIFont systemFontOfSize:fontSize]} context:nil].size;

   if (lblTextSize.height > lbl.frame.size.height) {
    totalHeight = (lblTextSize.height+H);
   }
   else
   {
       totalHeight = lbl.frame.size.height+H;
   }

   NSLog(@"+++++++++++++Height - %.2f",totalHeight);

   return totalHeight;
}

将此用于 heightforRow 方法

方法 - 2:

-(CGFloat)setRowHeightWithLabelText:(NSString *)lblText withExtraHeight:(CGFloat)H withFont:(CGFloat)fontSize
  {
     CGFloat totalHeight;
     CGFloat lblWidth = 300;

     CGSize lblTextSize = [lblText boundingRectWithSize:CGSizeMake(lblWidth, MAXFLOAT)
                                           options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading)
                                        attributes:@{NSFontAttributeName: [UIFont systemFontOfSize:fontSize]} context:nil].size;

    if (lblTextSize.height > 20) {
        totalHeight = (lblTextSize.height+H);
    }
    else
    {
        totalHeight = 20+H;
    }

    NSLog(@"+++++++++++++Height - %.2f",totalHeight);

    return totalHeight;
}

关于ios - iOS 8 中单个 UITableViewCell 上有 2 个多行标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32008857/

相关文章:

ios - 重用自定义 TableViewCell

ios - 带 UISearchBar 的 LeftBarButtonItem 在 iOS 11 上不可见

objective-c - 如何检查 C 数组中的空字符串

iphone - 从设备获取 NSUserDefaults plist 文件

iphone - 自定义 UITableviewCell 删除按钮的大小

ios - 在 viewController 上添加了一个 tableview,但数据不存在

ios - 获取节标题 View 的索引路径

ios - 以明文形式发送用户名/密码是否安全?

ios - 如何避免在 swift 上打开 View Controller ?

ios - xcode 上的 Flutter audioplayers 插件错误(未找到模块 'audioplayers')