自定义UIAlertView及简单的回调函数使用说明

本文介绍了在iOS开发中,如何自定义一个UIAlertView并添加简单的回调函数。通过创建一个继承自UIView的CustomAlertView类,实现了显示和隐藏方法,并在按钮点击事件中调用回调函数,用于关闭alertView后的后续操作。

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

       最近刚刚接触iOS的的开发,总结一下自己的心得体会.我们做iOS开发的时候,弹出对话框基本上都是使用系统提供的UIAlertView. 但是有时候系统提供的未必能够满足我们的需求,这个时候就需要我们自定义一个自己的UIAlertView,下面我们就来看看怎么样创建.


首先,我们创建一个继承于UIView的类CustomAlertView,接口定义文件如下:

#import <UIKit/UIKit.h>

//设置一个简单回调函数

typedef void (^CustomAlertViewBlock)();

@interface CustomAlertView : UIView


@property (nonatomic, copy) CustomAlertViewBlock finishBlock;

//设置显示方法

-(void)show;

//设置隐藏方法

-(void)hide;

@end


然后,实现文件(CustomAlertView.m)如下:


#import "CustomAlertView.h"

@interface CustomAlertView()


@property (weak, nonatomic) IBOutlet UIView *view;


@end


@implementation CustomAlertView


-(instancetype)init{


    self = [super init];

    if (self) {

        self = [[NSBundle mainBundle] loadNibNamed:@"CustomAlertView" owner:self options:nil].lastObject;

    }

    //设置弹出框的圆角

    _view.layer.borderWidth = 0.5;

    _view.layer.cornerRadius = 5;

    _view.layer.masksToBounds = YES;

    

    return self;

}


//实现显示方法

-(void)show{


    [[UIApplication sharedApplication].keyWindow addSubview:self];


}


//隐藏窗口

-(void)hide{


    [self removeFromSuperview];

}



- (IBAction)doCancelBtn:(UIButton *)sender {

    [self hide];

}



- (IBAction)doOKBtn:(UIButton *)sender {

    

    //回调函数

    

    if (_finishBlock) {

        _finishBlock();

    }


    //可以在这里处理请求信息

    [self hide];

}

@end



接着是布局文件:


最后是调用方法:

- (IBAction)doAlertViewShow:(UIButton *)sender {

    CustomAlertView *custome = [[CustomAlertView alloc]init];

    [custome show];

    

    

    //回调函数,关闭CustomAlertView后的后续操作,比如重新向服务器请求数据,刷新当前界面

    custome.finishBlock = ^{

    

        [_showBtn setBackgroundColor:[UIColor redColor]];

    

    };

    

这样一个简单的自定义对话框就完成了.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值