【发布时间】:2014-12-19 14:19:39
【问题描述】:
在我的应用程序中,我使用UIView 子类来显示各种信息。我希望这些视图显示为圆形,因此我将视图 layer 上的 cornerRadius 设置为 self.bounds.size.width / 2。
这按预期工作,直到我尝试为它们设置动画。我使用UIView.animateWithDuration 为我的视图设置动画,例如:
UIView.animateWithDuration(0.2, animations: { () -> Void in
self.myView.frame = CGRectInset(self.myView.frame, -20, -20);
}) { (done) -> Void in
}
我希望我的视图也可以在同一动画(或单独的动画)中更新图层的cornerRadius,因为cornerRadius 的变化不会使用animateWithDuration 进行动画处理。
这是我已经尝试过的:
- 子类化 CALayer,它会绘制一个圆圈并将其放在 MyView.layer 的顶部。
-
在
UIView.animatewithDuration运行时执行 CABasicAnimation
但所有这些都导致了错误的结果,因为边界尚未更新,或者添加的 CALayer 的大小调整是在其他动画完成之前完成的。我希望它是一个平稳的过渡。
【问题讨论】:
-
尝试设置视图的“clip to bound” = Yes
标签: ios animation core-animation