【发布时间】:2015-11-30 21:41:33
【问题描述】:
我有一个 UIButton(在界面生成器中创建),我通过设置 button.layer.borderRadius = button.frame.size.width / 2.0;(以编程方式,在 viewDidAppear 中:)将其变成一个圆圈。但是,它所属的 viewController 以动画形式呈现。由于viewDidAppear 直到过渡动画完成后才被调用,所以在此之前按钮是方形的,这使得突然的变化非常刺耳。
我无法在viewDidLoad 中设置半径,因为按钮属性不正确(宽度太大),我认为这是因为尚未正确解决自动布局约束。我试图通过在viewDidLoad 中调用[self.view setNeedsLayout] 来纠正此问题,然后设置cornerRadius,但按钮宽度仍然错误。我不明白的是,在动画期间,一切都正确渲染,表明自动布局约束/已经/已解决,或者 iOS 以快速动画的名义做了其他事情(比如存储快照预览以用于动画)。
有什么建议吗?
在viewDidLoad中尝试设置圆角半径的结果:
【问题讨论】:
标签: ios objective-c uibutton autolayout