【发布时间】:2016-12-20 16:32:03
【问题描述】:
我创建了UIButton 的自定义子类,所以我可以添加一个额外的标签。当此按钮位于 UIStackView 中时,额外标签的大小不正确。我尝试以编程方式向父按钮添加约束。这行得通,但我有页面损坏的约束警告(有点夸张)。如果我知道按钮何时被分配了最终尺寸,我可以设置添加的标签框架。
在完成所有自动布局之后,何时知道UIButton 的大小?
【问题讨论】:
-
你检查过 StackView 的填充属性值吗?
-
按钮的框架应该是已知的,并且可以在调用 layoutSubviews() 时使用,这可以在您的自定义类中覆盖
-
这是在添加按钮时设置的,添加到
UIView。或在viewDidLoad -
谢谢 Ben,layoutSubviews 做到了。
-
Ben,正确 - 我使用它,或者在超级视图中使用 viewWillLayoutSubviews。 @Jimmy,这是一个非常糟糕的建议 - 当涉及自动布局时,我建议永远不要使用 viewDidLoad,因为代码中实例化的视图多次(全部?)都没有框架。
标签: ios swift uibutton autolayout