CustomAlertView
这是一个自定义 AlertView,可以修改消息/标题/按钮的颜色。它还提供 3 种动画类型,分别是 fade
/ 从小到大
/ 从大到小
以下是一些示例
/**
* 透明度渐变
*/
- (IBAction)fadeAction:(id)sender {
CBWAlertView *view = [[CBWAlertView alloc]initWithTitle:@"标题" andMessage:@"内容.... message...."];
//设置 title 和 message的颜色,可以不设置默认为黑色
view.titleTextColor = [UIColor redColor];
view.messageTextColor = [UIColor greenColor];
[view addButtonWithTitle:@"取消" color:[UIColor lightGrayColor] handler:^(CBWAlertView *alertView) {
NSLog(@"取消按钮点击");
NSLog(@"%@",alertView);
}];
//设置按钮的颜色和标题
UIColor *color = [UIColor colorWithRed:0 green:118.0/255.0 blue:255.0/255.0 alpha:1.0];
[view addButtonWithTitle:@"确定" color:color handler:^(CBWAlertView *alertView) {
NSLog(@"确定按钮点击");
NSLog(@"%@",alertView);
}];
[view show];
}
查看演示了解更多使用方法
如果创建一个 View,加在当前的 VC 上
view,里面有一个 block,block 会调用当前VC方法
当前 VC 释放的时候,会产生内存泄露
提示:这里采用MLeaksFinder检测内存泄露
如果创建一个 View,加在当前的 VC 上
view,里面有一个 block,block 会调用当前VC方法
当前 VC 释放前干掉 view,就不会产生内存泄露
1.我自己写的 CBWAlertView 是在执行完成之后 removeFromSuperView 的,所以不会造成循环引用
- (void)buttonAction:(UIButton *)button{
AlertButtonItem *item = self.items[button.tag];
if (item.action) {
item.action(self);
}
[self dismiss];
}
- (void)dismiss{
[UIView animateWithDuration:dismisDuring
delay:0
options:UIViewAnimationOptionCurveEaseIn | UIViewAnimationOptionBeginFromCurrentState
animations:^{
self.alpha = 0.0;
} completion:^(BOOL finished) {
for (UIView *v in [self subviews]) {
[v removeFromSuperview];
}
[self removeFromSuperview];
}];
}
2.而且是加载 window 上的,不是加在 view 上面,更加不会照成循环引用
[[[[UIApplication sharedApplication] windows] lastObject] addSubview:self];