学习了系统的弹框之后就想着自己做一个弹框了,就先做个简单点的弹框吧
我们要先创建一个继承于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中拖一个按钮,绑定点击响应事件
在响应事件里做处理
- (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的背景颜色可以变换