将等宽度乘数添加到.xib组件而没有超级视图?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将等宽度乘数添加到.xib组件而没有超级视图?相关的知识,希望对你有一定的参考价值。
为了澄清这个问题,我需要解决以下几个方面
- 我正在按照这篇文章创建可重用的按钮组件,它本质上只是一个带有标签和用户操作的图像视图,它基于.xib and cocoa class files
- 我也跟着这个auto layout practice根据屏幕宽度调整一些元素的大小
问题
我希望我的按钮组件的宽度为0.4等于屏幕的宽度,问题是它没有超大视图,我可以对抗它,即当我将它包含在某些视图控制器中时它只有一个。由于此选项,自动布局中的“Equal Width”对我禁用。作为一种解决方法,我可以将其包含在一些视图中,但这会损害组件的可重用性,我宁愿它默认占用其超级视图的0.4等宽。
有关如何实现这一目标的任何建议?
答案
您可以使用UIView method didMoveToSuperview()
来获取超级视图。只要superview发生变化,就会调用它。例如:
override func didMoveToSuperview() {
super.didMoveToSuperview()
guard let currentSuperview = self.superview else { return }
}
然后,您可以以编程方式设置宽度约束,因为您有要查看的超级视图。
以上是关于将等宽度乘数添加到.xib组件而没有超级视图?的主要内容,如果未能解决你的问题,请参考以下文章
@IBDesignable , NSLayoutConstraint 用于超级视图的比例乘数宽度?