《Motion Design for iOS》(二十八)

本文介绍了如何在iOS应用中设计警告框的显示与消失动画。包括如何使警告框居中显示并实现淡入淡出效果,以及如何通过动画使其平滑缩放。文章提供了具体的UIView动画实现代码。

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

很好,警告框已经准确地处于屏幕的中间,并且有我想要的动画。现在让我们开发消失的动画。

就如我们起初显示警告框并且确保它不会出现的太快一样,当警告框消失时我们需要思考一下时间应该是什么样的。我不知道你怎么想,但当我关闭一个警告框时,我想要立即回到我之前被打断的内容里去,所以基于此,我总是喜欢以比显示它更快的速度来清楚它。没必要让动画两端的时间保持对称,如果对用户有意义的话,可以调整动画的时间。

// 淡出覆盖层和警告框
[UIView animateWithDuration:.15 delay:0 options:UIViewAnimationOptionCurveEaseInOut
    animations:^{
    overlayView.alpha = 0.0f;
    alertView.alpha = 0.0f;
} completion:NULL];

因为我们在回转我们的初始动画,我们现在需要将覆盖层和警告框视图的不透明度退回到0。同样,因为我想要这两个同时动画,所以我将它们放到同一个基于block动画中。注意这个淡出动画的时间只有淡入动画的一般长。我们想要让警告框离开屏幕的时候显得很爽利,让持续时间变短则可以完成这一需求。

接下来我们需要在其淡出到0不透明度的同时缩小警告框。

// 警告框的缩小动画
JNWSpringAnimation *scaleOut = [JNWSpringAnimation
    animationWithKeyPath:@"transform.scale"];
scaleOut.damping = 11;
scaleOut.stiffness = 11;
scaleOut.mass = 1;
scaleOut.fromValue = @(1.0);
scaleOut.toValue = @(0.7);

[alertView.layer addAnimation:scaleOut forKey:scaleOut.keyPath];
alertView.transform = CGAffineTransformMakeScale(0.7, 0.7);

内置的iOS警告框会在淡出时缩小一点点,所以我们在这里也做同样的事情。比例值0.7只是我观察内置的警告框后得出的,并且看起来还不错。

这里是完整的动画:



查看完整合集:https://github.com/Cloudox/Motion-Design-for-iOS
版权所有:http://blog.youkuaiyun.com/cloudox_

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值