iOS学习笔记(九)————简单的自定义弹框

/ 0评 / 0

学习了系统的弹框之后就想着自己做一个弹框了,就先做个简单点的弹框吧

我们要先创建一个继承于UIView的类,先声明一个要用这个弹框的类的对象

@interface CustomAlert : UIView
@property ViewController *viewController;
@end

//在初始化中添加ui的子视图
- (id)initWithFrame:(CGRect)frame{
    self = [super initWithFrame:frame];
    if (self) {

       //提醒标签
        self.backgroundColor = [UIColor yellowColor];
        UILabel *lab = [[UILabel alloc] initWithFrame:CGRectMake(20, 20, 150, 50)];
        lab.text = @"简单的自定义弹框";
        [self addSubview:lab];
        
        //取消按钮
        UIButton *cancel = [UIButton buttonWithType:UIButtonTypeCustom];
        cancel.frame = CGRectMake(0,120, 100, 70);
        cancel.tag = 100;
        [cancel setTitle:@"取消" forState:UIControlStateNormal];
        [cancel addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
        cancel.backgroundColor = [UIColor blueColor];
        [self addSubview:cancel];
        
        //确定按钮
        UIButton *okBtn = [UIButton buttonWithType:UIButtonTypeCustom];
        okBtn.frame = CGRectMake(100,120, 100, 70);
        okBtn.tag = 200;
        [okBtn setTitle:@"确定" forState:UIControlStateNormal];
        [okBtn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
        okBtn.backgroundColor = [UIColor purpleColor];
        [self addSubview:okBtn];
    }
    return self;
}

- (void)btnClick:(UIButton *)sender{
    NSLog(@"=====");
    if (sender.tag == 100) { 
    }else if(sender.tag == 200){
            self.viewController.view.backgroundColor = [UIColor redColor];
    }
    [self removeFromSuperview];
    //    要在这里获取aviewcontroller的对象
}

然后我们在viewcontroller的xib中拖一个按钮,绑定点击响应事件

customalert001

在响应事件里做处理

- (IBAction)btnClick:(UIButton *)sender {
    //    创建自定义类的对象(记得写坐标)
    CustomAlert *alertView = [[CustomAlert alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
    
    alertView.viewController = self;
    //    设置中心点
    alertView.center = self.view.center;
    [self.view addSubview:alertView];
}

运行看一下弹框效果,选择确定后viewcontroller的背景颜色可以变换

customalert002

代码请查看 http://git.oschina.net/zcb1603999/LearningiOS

评论已关闭。