您的位置:首页 > 移动开发 > IOS开发

自定义AlertView(iOS7)

2014-01-06 17:44 260 查看
ios7不支持自定义UIAlertView了,所以可以自己写个View,再套上以下的动画效果
先导入#import <QuartzCore/QuartzCore.h>
弹出动画效果:
 CAKeyframeAnimation *popAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform"];

    popAnimation.duration = 0.4;

    popAnimation.values = @[[NSValue valueWithCATransform3D:CATransform3DMakeScale(0.01f, 0.01f, 1.0f)],

                            [NSValue valueWithCATransform3D:CATransform3DMakeScale(1.1f, 1.1f, 1.0f)],

                            [NSValue valueWithCATransform3D:CATransform3DMakeScale(0.9f, 0.9f, 1.0f)],

                            [NSValue valueWithCATransform3D:CATransform3DIdentity]];

    popAnimation.keyTimes = @[@0.2f, @0.5f, @0.75f, @1.0f];

    popAnimation.timingFunctions = @[[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut],

                                     [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut],

                                     [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];

    [self.xxxView.layer addAnimation:popAnimation forKey:nil];

收回动画效果:
 CAKeyframeAnimation *hideAnimation
= [CAKeyframeAnimation animationWithKeyPath:@"transform"];

    hideAnimation.duration = 0.4;

    hideAnimation.values = @[[NSValue valueWithCATransform3D:CATransform3DMakeScale(1.1f, 1.1f, 1.0f)],

                             [NSValue valueWithCATransform3D:CATransform3DMakeScale(1.0f, 1.0f, 1.0f)],

                             [NSValue valueWithCATransform3D:CATransform3DMakeScale(0.00f, 0.00f, 0.00f)]];

    hideAnimation.keyTimes = @[@0.2f, @0.5f, @0.75f];

    hideAnimation.timingFunctions = @[[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut],

                                      [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut],

                                      [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];

    hideAnimation.delegate = self;

    [self.xxxView .layer addAnimation:hideAnimation forKey:nil];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息