/**
普通 Dialog ,同系统样式不带 blur 背景
*/
@interface AUNoticeDialog : AUDialogBaseView
/**
不带按钮标题的初始化方法。
@param title 标题
@param message 消息内容
@return AUNoticeDialog 实例
*/
- (instancetype)initWithTitle:(NSString *)title
message:(NSString *)message;
/**
带按钮标题的初始化方法。
@param title 标题
@param message 消息内容
@param delegate 协议对象(遵循 AUDialogDelegate)
@param buttonTitle 按钮标题列表
@return AUNoticeDialog 实例
*/
- (instancetype)initWithTitle:(NSString *)title
message:(NSString *)message
delegate:(id<AUDialogDelegate>)delegate
buttonTitles:(NSString *)buttonTitle, ... NS_REQUIRES_NIL_TERMINATION;
- (instancetype)initWithCustomView:(UIView *)customView; // 自定义内容区域
- (instancetype)init NS_UNAVAILABLE;
/**
Dialog 展示方法。
*/
- (void)show;
/**
添加按钮以及其回调方法。
@param buttonTitle 按钮标题
@param actionBlock 按钮点击回调
*/
- (void)addButton:(NSString *)buttonTitle actionBlock:(AUDialogActionBlock)actionBlock;
/**
Dialog 消失方法,类似APAlertView的dismissWithClickedButtonIndex方法
*/
- (void)dismissWithClickedButtonIndex:(NSInteger)buttonIndex animated:(BOOL)animated;
/**
设置文本对齐
@param alignment 对齐参数
*/
- (void)setMessageAlignment:(NSTextAlignment)alignment;
使用 block 添加 button 点击回调:
AUNoticeDialog *dialog = [[AUNoticeDialog alloc] initWithTitle:@"标题" message:@"内容"];
[dialog addButton:@"知道了" actionBlock:^{
NSLog(@"print pressed");
}];
[dialog addButton:@"好的" actionBlock:nil];
[dialog show];
使用 delegate 添加 button 点击回调:
AUNoticeDialog *dialog = [[AUNoticeDialog alloc] initWithTitle:@"标题" message:@"内容" delegate:delegate buttonTitles:@"确定", nil];
[dialog show];
delegate协议为AUDialogDelegate(类似UIAlertViewDelegate)
简便方法接入:
NS_INLINE AUNoticeDialog *AUNoticeDialogWithTitle(NSString *title)
NS_INLINE AUNoticeDialog *AUNoticeDialogWithTitleAndMessage(NSString *title, NSString *message)
以前主要为 APAlertView 和 UIAlertView,本节介绍如何更改为 AUNoticeDialog。
为了更简单的从 APAlertView 和 UIAlertView 接入 AUNoticeDialog,大部分接口均做了支持,因此大多数情况下只需要更改类名即可,具体如下:
- (instancetype)initWithTitle:(NSString *)title
message:(NSString *)message
delegate:(id<AUDialogDelegate>)delegate
cancelButtonTitle:(NSString *)cancelButtonTitle
otherButtonTitles:(NSString *)otherButtonTitles, ... NS_REQUIRES_NIL_TERMINATION;
创建时,更改类名即可,只需将 [[APAlertView alloc] initWithxxxxxx]
改为 [[AUNoticeDialog alloc] initWithxxxxxx]
。
NS_INLINE UIAlertView *UIAlertViewWithTitleAndMessage(NSString *title, NSString *message)
//
NS_INLINE UIAlertView *UIAlertViewWithTitle(NSString *title)
NS_INLINE UIAlertView *UIAlertViewWithMessage(NSString *message)
- (NSInteger)addButtonWithTitle:(NSString *)title callback:(void (^)(int index, NSString *title))callback;
/**
@brief 添加取消 Button 和回调
@param title 按钮 title
@param callback 回调的 callback
*/
- (NSInteger)addCancelButtonWithTitle:(NSString *)title callback:(void (^)(int index, NSString *title))callback;
/**
@brief 添加 Button
@param title 按钮 title
*/
- (NSInteger)addButtonWithTitle:(NSString *)title;
/**
@brief 添加取消 button
@param title 按钮 title
*/
- (NSInteger)addCancelButtonWithTitle:(NSString *)title;
+(void)setBackgroundMode:(BOOL)isBackMode;
/**
Dialog 消失方法,类似 APAlertView 的 dismissWithClickedButtonIndex 方法
*/
- (void)dismissWithClickedButtonIndex:(NSInteger)buttonIndex animated:(BOOL)animated
- (nullable NSString *)buttonTitleAtIndex:(NSInteger)buttonIndex;
/**
有多少个按钮(类似 APAlertView的numberOfButtons)
*/
@property(nonatomic,readonly) NSInteger numberOfButtons;
/**
取消按钮的 index(类似 APAlertView的cancelButtonIndex)
*/
@property(nonatomic) NSInteger cancelButtonIndex;
调用 APAlertView 的如下接口需要变更为其他方法,只需更改方法名:
将 showAlert
方法改为 show
方法
如:[alertView showAlert] ==> [alertView show]
将 removeAllAlerviews
方法改为 dismissAll
方法
如:[APAlertView removeAllAlerviews] ==> [AUNoticeDialog dismissAll]
如果使用了 APAlertView 或者 UIAlertView 的输入框功能,请使用 AUInputDialog 替换,使用方法与 AUNoticeDialog 基本相同。
创建方法修改,如:
[UIAlertController alertControllerWithTitle:title message:message preferredStyle:UIAlertControllerStyleAlert]
修改为
[[AUNoticeDialog alloc] initWithTitle:@"标题" message:@"内容"]
添加button和事件修改:
[UIAlertAction actionWithTitle:title style:(UIAlertActionStyle)style handler:handler]
修改为
[dialog addButton:@"知道了" actionBlock:^{
NSLog(@"xxxx");
}]
标准样式:
AUNoticeDialog *dialog = [[AUNoticeDialog alloc] initWithTitle:@"标准控件" message:@"两个平台的同类控件命名需完全一样,控件命名以\"AU\"为前缀,控件自定义属性全部采用驼峰命名。注意:某些控件可能存在平台差别,一个平台需要实现另外一个平台不需要实现。"];
[dialog addButton:@"知道了" actionBlock:nil];
[dialog addButton:@"好的" actionBlock:nil];
[dialog show];
自定义样式:
UIView *customView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 240, 60)];
customView.backgroundColor = [UIColor greenColor];
AUNoticeDialog *dialog = [[AUNoticeDialog alloc] initWithCustomView:customView];
[dialog addButton:@"取消" actionBlock:nil];
[dialog addButton:@"确定" actionBlock:nil];
[dialog show];
在文档使用中是否遇到以下问题
更多建议
匿名提交