为了稍微澄清这个问题,我需要解决以下几个方面
问题
我希望按钮组件的宽度等于屏幕的0.4,但问题是它没有可缩放的超级视图,即当我将其包含在某些视图控制器中时仅具有一个超级视图。由于此选项,我无法使用自动布局中的“等宽”。解决方法是,一旦将其包含到某个视图中,便可以调整其大小,但这会损害组件的可重用性,我宁愿默认情况下它占据其父视图的0.4相等宽度。
关于如何实现这一目标的任何建议?
答案 0 :(得分:2)
您可以使用UIView method didMoveToSuperview()
来获取超级视图。只要超级视图发生更改,就会调用它。
例如:
override func didMoveToSuperview() {
super.didMoveToSuperview()
guard let currentSuperview = self.superview else { return }
}
然后,您可以通过编程方式设置宽度约束,因为您要关联一个超级视图。