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