【发布时间】:2014-07-18 06:45:01
【问题描述】:
我目前正在 Swift 中试验 UIView 动画。我试图将按钮的大小从 (309, 452, 0, 0) 调整为 (400, 400, 150, 150)。我有代码:
override func viewDidAppear(animated: Bool) {
UIView.animateWithDuration(0.5, animations: {
self.start.bounds = CGRectMake(400, 400, 150, 150)
println(self.start.bounds);
});
}
但是,按钮突然从无(无过渡)出现到 150x150 并一直过渡到左上角 (0,0)。即使打印语句在控制台中打印出 (309, 452, 150, 150),它也没有该帧。我也尝试将 self.start.bounds 更改为 self.start.frame,但这并没有什么不同。
【问题讨论】:
-
您是否使用按钮的自动布局?
-
不,我删除了所有的自动布局约束
-
如果您也在更改位置,那么您可能应该使用框架。我在您的问题中看到您已经尝试过,但您应该再次使用它。动画之前的帧是多少(即改变之前的模型值是多少)?
-
如果我尝试使用框架,它会变成 (0,0,0,0)。但是,当我使用边界并打印出框架和边界值时,控制台输出边界 (400.0,400.0,150.0,150.0) 和框架输出 (-75.0,-75.0,150.0,150.0)
-
不要改变边界,几乎永远不要改变按钮。仅对帧(或约束常量)进行动画处理。
标签: ios objective-c uibutton swift uiviewanimation