美文网首页
iOS 自定义AlertView

iOS 自定义AlertView

作者: PandaXiong | 来源:发表于2016-05-29 23:16 被阅读632次

iOS 自带的UIAlertViewUIAlertController功能非常局限,有时候需要我们自定义AlertView。

下面是我在完成自定义AlertView的方法。

思路:

1.解决视图问题,按照需求写一个View就行。

2.设置怎样的动画让视图弹出

3.自定义的AlertView 如何加在需要展示的视图上。

调用自定义的AlertView,要像调用系统的AlertView那样简单。我们可以根据系统的AlertView调用方法,来揣测它的实现方法。

第一步初始化,这儿我们需要初始化视图

第二步show,让视图弹出。系统的实现直接调用一个[alertView show],方法就实现了这一功能。我想这里它应该就是加在UIWindow上的。

定制视图:首先需要个蒙板,当视图弹出时让整个也没无法交互。这里需要设置蒙板的透明度,再将弹出的视图加在蒙板上。(这里要注意的一点,父视图的透明度会影响子视图透明度。解决方法:调用 view.backgroundColor = [[UIColor lightGrayColor] colorWithAlphaComponent:0.4],这样设置透明度不会影响子视图透明度)

调用show方法:可以直接将视图加在window上 [[[UIApplication sharedApplication].delegate window] addSubview:self]; 这里的self 即视图本身。

- (void)show
{
    
    if (!_isShow) {
        [[[UIApplication sharedApplication].delegate window]  addSubview:self];
        [self shakeToShow:_alertView];
        _isShow = YES;
    }
    
}

当用户点击『确定』或者『取消』按钮时。调用 [self removeFromSuperview]; 就可以。

- (void)hideView {
    [self removeFromSuperview];
}

接着是动画效果的实现

这个弹出效果 要有一种回弹的效果,需要设置多个值。这里我选择关键帧动画来完成。

代码如下:

  - (void)shakeToShow:(UIView*)aView {
    CAKeyframeAnimation* animation = [CAKeyframeAnimation animationWithKeyPath:@"transform"];
    animation.duration = 0.5;
    NSMutableArray *values = [NSMutableArray array];
    [values addObject:[NSValue valueWithCATransform3D:CATransform3DMakeScale(0.1, 0.1, 1.0)]];
    [values addObject:[NSValue valueWithCATransform3D:CATransform3DMakeScale(1.2, 1.2, 1.0)]];
    [values addObject:[NSValue valueWithCATransform3D:CATransform3DMakeScale(0.9, 0.9, 1.0)]];
    [values addObject:[NSValue valueWithCATransform3D:CATransform3DMakeScale(1.0, 1.0, 1.0)]];
    animation.values = values;
    [aView.layer addAnimation:animation forKey:nil];
}

github地址

相关文章

  • 自定义AlertView

    自定义AlertView 之囧事 昨天被 AlertView、AlertController虐了 ...然鹅发现...

  • ios自定义AlertView

    先上图,弹框的背景色,按钮背景色,提示的消息的字体颜色都可以改变 利用单例实现丰富的自定义接口 .m文件中初始化控...

  • iOS自定义alertview

    在家闲来无事,于是就看起来ios绘图的那块,写点什么好呢? 鼓捣了一会,总算写出了一个小东西 这个是写完以后的效果...

  • iOS 自定义AlertView

    iOS 自带的UIAlertView 与UIAlertController功能非常局限,有时候需要我们自定义Ale...

  • iOS自定义AlertView

    ELAlertView ELAlertView 可以定制化弹框的外形和其内容,最关键的是可以放置图片. 你可以使...

  • iOS自定义AlertView

    在iOS开发中,我们经常会用到一些提示框或者一些弹出菜单,但是这些视图系统自带的视图是满足不了的,比如这种:Wec...

  • IOS 提示框UIAlertView,UIActionSheet

    一:UIAlertView警告框 IOS 2 - IOS 9 UIAlertView*AlertView=[[UI...

  • ios AlertView 自定义弹窗

    自定义弹窗,虽然同样的Dome很多,但我还是厚颜无耻的再共享一个自己写的吧!这个弹窗我定义了两种实现模式,一种是 ...

  • iOS 自定义AlertView(OC)

    最近项目中,要使用AlertView提示框,其实和UIAlertView类似的方式,只是按钮颜色发生修改。Aler...

  • iOS自定义控件-AlertView

    本控件项目地址,希望能给个start,欢迎大家交流指正。 简单说明 有简单动画效果,高度可根据内容自适应,点击事件...

网友评论

      本文标题:iOS 自定义AlertView

      本文链接:https://www.haomeiwen.com/subject/uuvqdttx.html