StoryBoard 中使用AutoLayout实现Animation效果

本文介绍如何在使用Autolayout布局的同时实现动画效果。通过修改视图的transform属性而非frame属性,可以避免布局冲突,实现流畅的动画过渡。文中提供了一个具体的示例,展示了如何通过代码使原本隐藏或错位的标签平滑地回到正确位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

            

        }

    }

    




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值