菜鸟教程小白 发表于 2022-12-12 15:59:06

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


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

<p>我已经实现了自动布局和</p>

<pre><code>label.numberofline = 0;
tableVieww.estimatedRowHeight= 100.0;
tableVieww.rowHeight = UITableViewAutomaticDimension;
</code></pre>

<p>但它只会扩展一个标签,而不是同时扩展两个标签。请帮忙。</p>

<p>提前致谢</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>试试这个:</p>

<p>使用此代码计算行高</p>

<p><strong>注意:ExtraHeight"H"</strong></p>

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

<p>你将把这段代码放在 <strong>heightforRowatindexpath</strong> 中,所以 <strong>cell.label</strong> 无法到达那里,所以只需传递文本并使用 <strong>Method-2</strong>强></p>

<p><strong>方法 - 1:</strong></p>

<pre><code>-(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: } context:nil].size;

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

   NSLog(@&#34;+++++++++++++Height - %.2f&#34;,totalHeight);

   return totalHeight;
}
</code></pre>

<p>在 <strong>heightforRow</strong> 方法中使用它</p>

<p><strong>方法 - 2:</strong></p>

<pre><code>-(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: } context:nil].size;

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

    NSLog(@&#34;+++++++++++++Height - %.2f&#34;,totalHeight);

    return totalHeight;
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 在 iOS 8 中的单个 UITableViewCell 上有 2 个多行标签,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/32008857/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/32008857/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 在 iOS 8 中的单个 UITableViewCell 上有 2 个多行标签