菜鸟教程小白 发表于 2022-12-13 15:41:25

ios - 在 iOS 中以编程方式更改 NSLayoutConstraint 的关系


                                            <p><p>我在屏幕底部有一个 <code>UITextView</code>。<br/>
它对父 View 具有<code>前导、尾随底部空间约束</code>。<br/>
它还具有 <code>高度约束,值为(常量)40</code>。 </p>

<p>当我继续在其中输入更多文本时,我想让这个 TextView 具有灵活的高度。
我可以通过将高度约束值更改为 <code>大于或等于</code> 来制作灵活的高度:</p>

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

<p>它工作正常, TextView 高度不断增加。</p>

<p>但是当我成功时, Storyboard 显示此错误:</p>

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

<p>我想以编程方式使约束值大于或等于,而不是来自 Storyboard 。 </p>

<p>我知道 <code>NSLayoutConstraint</code> 的一个属性叫做 </p>

<pre><code>public var relation: NSLayoutRelation { get }
</code></pre>

<p>但我们可以看到它是只读的。</p>

<p>如何将此关系更改为以下之一:</p>

<pre><code>public enum NSLayoutRelation : Int {   
    case LessThanOrEqual
    case Equal
    case GreaterThanOrEqual
}
</code></pre>

<p>或者是否有任何解决方法可以在基于自动布局的 Storyboard中显示灵活高度?</p>

<hr/>

<p>我知道制作约束的 IBOutlet 并更改它的常量值,但在我的情况下我不能这样做,它应该动态更改。 </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>相关:<a href="https://stackoverflow.com/questions/30722213/auto-layout-modify-multiplier-of-constriaint-programmatically" rel="noreferrer noopener nofollow">auto layout modify multiplier of constriaint programmatically</a> </p>

<p>使用 ARC:</p>

<pre><code>- (void)changeConstraintRelationToEqual:(NSLayoutConstraint * __strong *)constraint{
    NSLayoutConstraint *newConstraint = ;
    ;
    ;
    *constraint = newConstraint;
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 在 iOS 中以编程方式更改 NSLayoutConstraint 的关系,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/36264942/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/36264942/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 在 iOS 中以编程方式更改 NSLayoutConstraint 的关系