菜鸟教程小白 发表于 2022-12-13 11:57:42

ios 真空包装 UIView


                                            <p><p>我的 UIView 内部有动态数量的 View ,并且还具有背景颜色。我正在尝试将 UIView 塞入所有项目中,但它不起作用。</p>

<p><code></code> 似乎在 UILabel 上工作得很好,但在 UIView 上却不行。</p>

<p>我知道我可以通过循环遍历所有 subview 来手动计算面积,但这对于这样的事情来说似乎工作量太大了。</p>

<p>我希望有人知道更简单的方法.. 谢谢</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><h2>更新</h2>

<p>如果您使用自动布局,您可以使容器 View 紧贴其 subview 。在你的容器和它的 subview 之间设置约束,在 subview 和容器的父 View 之间设置约束,但是<strong>不要</strong>在容器和它的父 View 之间设置约束。</p>

<h2>原创</h2>

<p>没有内置支持自动将 View 包裹在其 subview 周围。</p>

<p><code>sizeToFit</code> 方法的工作原理是发送 <code></code>,然后根据 <code>sizeThatFits 返回的大小调整自身大小:</code>.</p>

<p><code>UILabel</code> 覆盖 <code>sizeThatFits:</code> 方法以计算其字体中文本的大小。</p>

<p>您需要创建一个自定义 <code>UIView</code> 子类并覆盖 <code>sizeThatFits:</code>。很简单:</p>

<pre><code>- (CGSize)sizeThatFits:(CGSize)size {
    CGRect rect = CGRectZero;
    for (UIView *subview in self.subviews)
      rect = CGRectUnion(rect, subview.frame);
    return rect.size;
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios 真空包装 UIView,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/9542586/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/9542586/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios 真空包装 UIView