为了澄清这个问题,我需要解决以下几个方面
问题
我希望我的按钮组件的宽度为0.4等于屏幕的宽度,问题是它没有超大视图,我可以对抗它,即当我将它包含在某些视图控制器中时它只有一个。由于此选项,自动布局中的“Equal Width”对我禁用。作为一种解决方法,我可以将其包含在一些视图中,但这会损害组件的可重用性,我宁愿它默认占用其超级视图的0.4等宽。
有关如何实现这一目标的任何建议?
您可以使用UIView method didMoveToSuperview()
来获取超级视图。只要superview发生变化,就会调用它。例如:
override func didMoveToSuperview() {
super.didMoveToSuperview()
guard let currentSuperview = self.superview else { return }
}
然后,您可以以编程方式设置宽度约束,因为您有要查看的超级视图。