ios - 将等宽乘数添加到没有 super View 的.xib 组件?
<p><p>为了澄清这个问题,我需要解决以下几个方面</p>
<ol>
<li>我正在关注这篇文章来创建可重复使用的按钮组件,它本质上只是一个启用了标签和用户操作的 ImageView ,它基于 <a href="https://medium.com/@brianclouser/swift-3-creating-a-custom-view-from-a-xib-ecdfe5b3a960" rel="noreferrer noopener nofollow">.xib and cocoa class files</a> </li>
<li>我也在关注这个<a href="https://www.youtube.com/watch?v=vegamwo6SvU" rel="noreferrer noopener nofollow">auto layout practice</a>根据屏幕宽度调整我的一些元素的大小</li>
</ol>
<p><strong>问题</strong></p>
<p>我希望我的按钮组件是屏幕宽度的 0.4,问题是它没有我可以调整大小的 superView ,即当我将它包含到某些 ViewController 中时它只有一个。由于这个选项,自动布局中的“等宽”对我来说是禁用的。作为一种解决方法,我可以在将其包含到某个 View 中后调整其大小,但这会损害组件的可重用性,我宁愿它默认占用其 superView 的 0.4 等宽。</p>
<p>关于如何实现这一点的任何建议?</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>您可以使用 UIView <a href="https://developer.apple.com/documentation/uikit/uiview/1622433-didmovetosuperview" rel="noreferrer noopener nofollow">method</a> <code>didMoveToSuperview()</code> 获取 superView 。每当 superView 更改时都会调用它。
例如:</p>
<pre><code>override func didMoveToSuperview() {
super.didMoveToSuperview()
guard let currentSuperview = self.superview else { return }
}
</code></pre>
<p>然后您可以通过编程方式设置宽度约束,因为您有一个与之相关的 superView 。</p></p>
<p style="font-size: 20px;">关于ios - 将等宽乘数添加到没有 superView 的.xib 组件?,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/52134382/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/52134382/
</a>
</p>
页:
[1]