使用Autolayout布局的情况下,作为一个初学者都会把我们的都会认为再和Animation无缘了,再也没发实现动画的效果了。
但是,我想说小伙伴们,你们的想法是错误的。
在使用AutoLayout的情况下,我们同样可以实现Animation的效果。
视图在Storyboard中,通过constraints 约束,实现基本的布局,通过改变控件的
transform的属性,实现基本的动画效果。
View添加constraints 实际上是相对视图中的Bounds的坐标位置添加的限制,通过修改在View中的Bounds上的相对坐标,就可以实现Animation的效果。(修改Bounds的相对位置,并不能影响子视图在View中的Frame的坐标)。
测试代码:
class ViewController: UIViewController {
@IBOutletweak var passwordLabel:UILabel!
@IBOutletweak var phoneLabel:UILabel!
@IBOutletweak var topLabel:UILabel!
overridefunc viewDidLoad() {
super.viewDidLoad()
topLabel.transform =CGAffineTransformMakeTranslation(0, -200)
passwordLabel.transform =CGAffineTransformMakeTranslation(-200, -200)
phoneLabel.transform =CGAffineTransformMakeTranslation(-200,0)
// Do any additional setup after loading the view, typically from a nib.
}
overridefunc viewDidAppear(animated:Bool) {
UIView.animateWithDuration(0.5) {
self.topLabel.transform = CGAffineTransformIdentity
self.phoneLabel.transform = CGAffineTransformIdentity
self.passwordLabel.transform = CGAffineTransformIdentity
}
}