将等宽乘数添加到没有超级视图的.xib 组件?
Posted
技术标签:
【中文标题】将等宽乘数添加到没有超级视图的.xib 组件?【英文标题】:Adding Equal Width Multiplier to .xib component with no super view? 【发布时间】:2018-09-02 05:58:11 【问题描述】:为了澄清这个问题,我需要解决以下几个方面
-
我正在关注这篇文章来创建可重用的按钮组件,它本质上只是一个启用了标签和用户操作的图像视图,它基于.xib and cocoa class files
我也在关注这个auto layout practice,根据屏幕宽度调整我的一些元素的大小
问题
我希望我的按钮组件与屏幕的宽度相等 0.4,问题是它没有我可以调整大小的超级视图,即当我将它包含到某些视图控制器中时它只有一个。由于这个选项,自动布局中的“等宽”对我来说是禁用的。作为一种解决方法,我可以在将其包含到某个视图中后调整其大小,但这会损害组件的可重用性,我宁愿它默认占用其超级视图的 0.4 等宽。
关于如何实现这一点的任何建议?
【问题讨论】:
【参考方案1】:您可以使用 UIView method didMoveToSuperview()
来获取超级视图。每当超级视图更改时都会调用它。
例如:
override func didMoveToSuperview()
super.didMoveToSuperview()
guard let currentSuperview = self.superview else return
然后你可以通过编程设置宽度约束,因为你有一个与之相关的超级视图。
【讨论】:
以上是关于将等宽乘数添加到没有超级视图的.xib 组件?的主要内容,如果未能解决你的问题,请参考以下文章