菜鸟教程小白 发表于 2022-12-12 16:56:29

ios - Wordwrap 与换行 UIButton 拉伸(stretch)


                                            <p><p>我有一个 <code>UIButton</code>,我需要能够将其标签设置为任何文本,因此它需要垂直拉伸(stretch)。</p>

<p>使用 <code>\n</code> 字符设置文本时,UIButton 会正确展开:</p>

<pre><code>self.myButton.titleLabel.textAlignment = NSTextAlignmentCenter;
self.myButton.titleLabel.lineBreakMode = NSLineBreakByWordWrapping;
self.myButton.titleLabel.numberOfLines = 0;
;
</code></pre>

<p> <a href="/image/UL5TM.png" rel="noreferrer noopener nofollow"><img src="/image/UL5TM.png" alt="enter image description here"/></a> </p>

<p>但是当我没有任何 <code>\n</code> 而是让标签根据内容自行换行时,这些行似乎对 <code>UIButton</code>高度</p>

<pre><code>self.myButton.titleLabel.textAlignment = NSTextAlignmentCenter;
self.myButton.titleLabel.lineBreakMode = NSLineBreakByWordWrapping;
self.myButton.titleLabel.numberOfLines = 0;
;
</code></pre>

<p> <a href="/image/GqCMe.png" rel="noreferrer noopener nofollow"><img src="/image/GqCMe.png" alt="enter image description here"/></a> </p>

<p><code>UIButton</code> 或其 <code>UILabel</code> 上是否有控制此行为的配置,或者这是 iOS 错误? (在 iOS 9.1 上运行)</p>

<p><strong><em>注意:</em></strong><em>我对每次更改文本时手动重新计算 UIButton 的帧大小并不感兴趣,我想知道如果 UIButton 上有自动布局约束或配置属性以获得正确的行为</em></p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您需要创建一个 <code>UIButton</code> 的子类,在其中覆盖 <code>intrinsicContentSize</code>:</p>

<pre><code>@implementation HeightExpandingButton

- (CGSize)intrinsicContentSize {
    CGFloat width = self.bounds.size.width;
    CGSize labelSize = ;
    labelSize.width = width;
    return labelSize;
}

@end
</code></pre>

<p>结果:</p>

<p> <a href="/image/M696h.gif" rel="noreferrer noopener nofollow"><img src="/image/M696h.gif" alt="demo"/></a> </p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - Wordwrap 与换行 UIButton 拉伸(stretch),我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/33522032/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/33522032/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - Wordwrap 与换行 UIButton 拉伸(stretch)