iOS:自动布局灵活边距
<p><p>我的 <code>UIView</code> 中有一个 <code>UILabel</code> 对象。当它的 superView 大小发生变化时,我想让这个标签分别移动。这就像旧的 <code>UIViewAutoresizingFlexibleTopMargin</code>、<code>UIViewAutoresizingFlexibleRightMargin</code>、<code>UIViewAutoresizingFlexibleBottomMargin</code> 和 <code>UIViewAutoresizingFlexibleLeftMargin</code>,这样如果 superview 的高度发生变化,标签上边距会分别改变,左边距也一样。</p>
<p>如何使用 <code>Autolayout</code> 而不是旧的 <code>autoresizingmask</code> 做到这一点?</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>您使用 NSLayoutConstraint 的 multiplier 属性来实现这一点。您不能将边缘属性与尺寸属性混合使用,但您<em>可以</em>使用底部和右侧边缘作为尺寸的代理。 </p>
<pre><code>UIView * parent = [ init];
UILabel * label = [ init];
;
;
//Label top stays at 20% of the height of the view
NSLayoutConstraint * topMargin = [NSLayoutConstraint constraintWithItem:label
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:parent
attribute:NSLayoutAttributeBottom
multiplier:0.2f
constant:0.0f];
;
</code></pre></p>
<p style="font-size: 20px;">关于iOS:自动布局灵活边距,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/20720576/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/20720576/
</a>
</p>
页:
[1]