StoryBoard 中使用AutoLayout实现Animation效果

时间:2021-03-27 17:37:15

使用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

            

        }

    }