全部产品
云市场
云游戏

图片弹窗

更新时间:2019-12-20 15:27:24

  • AUImageDialog 为带图片样式的 Dialog,图片会做圆角处理,具体样式由 UED 提出需求,如下面效果图展示。
  • window 层级:self.windowLevel = UIWindowLevelAlert - 1

效果图

  • 普通按钮样式

  • 自定义样式

  • 大图标样式

接口说明

  1. // 按钮点击 Index 对应值
  2. typedef NS_ENUM(NSInteger, AUImageDialogButtonIndex) {
  3. AUImageDialogButtonIndex_Close = -2,
  4. AUImageDialogButtonIndex_Link = -1,
  5. AUImageDialogButtonIndex_Action = 0
  6. };
  7. /**
  8. 图片 Dialog,支持 UED 需求的一种特殊样式 Dialog,图片会做圆形显示。
  9. 有两种模式:
  10. 普通图片模式,添加按钮为普通按钮
  11. 行为按钮模式,可以添加一个行为按钮以及链接按钮,右上角会有 X 退出按钮样式。
  12. 两种模式不可添加对方模式的按钮,有 assert 校验。
  13. */
  14. @interface AUImageDialog : AUDialogBaseView
  15. /**
  16. 不带按钮标题的初始化方法。
  17. @param image 图片
  18. @param title 标题
  19. @param message 消息内容
  20. @param delegate 协议对象(遵循 AUDialogDelegate)
  21. @return AUImageDialog 实例
  22. */
  23. - (instancetype)initWithImage:(UIImage *)image
  24. title:(NSString *)title
  25. message:(NSString *)message
  26. delegate:(id<AUDialogDelegate>)delegate;
  27. /**
  28. 带按钮标题的初始化方法。
  29. @param image 图片
  30. @param title 标题
  31. @param message 消息内容
  32. @param delegate 协议对象(遵循 AUDialogDelegate)
  33. @param buttonTitle 按钮标题参数列表
  34. @return AUImageDialog 实例
  35. */
  36. - (instancetype)initWithImage:(UIImage *)image
  37. title:(NSString *)title
  38. message:(NSString *)message
  39. delegate:(id<AUDialogDelegate>)delegate
  40. buttonTitles:(NSString *)buttonTitle, ... NS_REQUIRES_NIL_TERMINATION;
  41. /**
  42. 带蓝色行为按钮的初始化方法。
  43. @param image 图片
  44. @param title 标题
  45. @param message 消息详情
  46. @param delegate 协议对象(遵循 AUDialogDelegate)
  47. @param actionTitle 行为按钮标题
  48. @return AUImageDialog 实例
  49. */
  50. - (instancetype)initWithImage:(UIImage *)image
  51. title:(NSString *)title
  52. message:(NSString *)message
  53. delegate:(id<AUDialogDelegate>)delegate
  54. actionButtonTitle:(NSString *)actionTitle;
  55. /**
  56. 带蓝色行为按钮以及链接按钮的初始化方法。
  57. @param image 图片
  58. @param title 标题
  59. @param message 消息详情
  60. @param delegate 协议对象(遵循 AUDialogDelegate)
  61. @param linkText 链接文本
  62. @param actionTitle 行为按钮标题
  63. @return AUImageDialog 实例
  64. */
  65. - (instancetype)initWithImage:(UIImage *)image
  66. title:(NSString *)title
  67. message:(NSString *)message
  68. delegate:(id<AUDialogDelegate>)delegate
  69. linkText:(NSString *)linkText
  70. actionButtonTitle:(NSString *)actionTitle;
  71. - (instancetype)init NS_UNAVAILABLE;
  72. - (instancetype)initWithCustomView:(UIView *)customView; // 自定义内容区域,默认带右上角 X 按钮
  73. /**
  74. Dialog 展示方法。
  75. */
  76. - (void)show;
  77. /**
  78. 描述文本置为灰色,默认为 NO
  79. */
  80. - (void)setGrayMessage:(BOOL)grayMessage;
  81. /**
  82. 设置文本对齐
  83. @param alignment 对齐参数
  84. */
  85. - (void)setMessageAlignment:(NSTextAlignment)alignment;
  86. /**
  87. 设置自定义图片尺寸, 宽度不许超过 Dialog 最大宽度 270, 默认 135x135
  88. */
  89. - (void)configImageAreaSize:(CGSize)imageSize;
  90. /**
  91. 添加普通按钮以及其回调方法(仅支持不带行为按钮和链接按钮情况下添加)。
  92. @param buttonTitle 普通按钮标题
  93. @param actionBlock 按钮回调
  94. */
  95. - (void)addButton:(NSString *)buttonTitle actionBlock:(AUDialogActionBlock)actionBlock;
  96. /**
  97. 添加行为按钮以及其回调方法。
  98. @param actionTitle 行为按钮标题
  99. @param actionBlock 行为按钮回调
  100. */
  101. - (void)addActionButton:(NSString *)actionTitle actionBlock:(AUDialogActionBlock)actionBlock;
  102. /**
  103. 添加链接按钮以及其回调方法。
  104. @param linkText 链接文本
  105. @param actionBlock 链接按钮回调
  106. */
  107. - (void)addLinkButton:(NSString *)linkText actionBlock:(AUDialogActionBlock)actionBlock;
  108. /**
  109. 隐藏右上角关闭按钮
  110. */
  111. - (void)setCloseButtonHidden:(BOOL) hidden;

大图标样式接口说明

  1. /**
  2. 图片 Dialog,支持 UED 需求的一种特殊样式 Dialog
  3. * 样式:图片属于大图样式,图片高度固定为 312px,关闭按钮在图片右上角
  4. * 关闭按钮是 iconfont,在大图样式下默认白色
  5. */
  6. @interface AUImageDialog (largeImageStyle)
  7. /**
  8. 不带按钮标题的初始化方法。
  9. @param image 图片
  10. @param title 标题
  11. @param message 消息内容
  12. @param delegate 协议对象(遵循 AUDialogDelegate)
  13. @return AUImageDialog 实例
  14. */
  15. - (instancetype)initWithLargeImage:(UIImage *)image
  16. title:(NSString *)title
  17. message:(NSString *)message
  18. delegate:(id<AUDialogDelegate>)delegate;
  19. /**
  20. * 设置右上角关闭按钮的色值,默认为白色
  21. */
  22. - (void)resetCloseIconColor:(UIColor *)color;
  23. @end

代码示例

  • 普通按钮样式:
    1. UIImage *image = [UIImage imageNamed:@"panghu.jpg"];
    2. AUImageDialog *dialog = [[AUImageDialog alloc] initWithImage:image title:@"胖虎" message:@"严格匹配,规范中没有的不能放入标准控件中, 规范中未有但已经在多处使用的控件应放入候选控件集合中。另外不强制某一规范必须实现为单个控件,例如标题栏规范" delegate:self];
    3. [dialog addButton:@"取消" actionBlock:nil];
    4. [dialog addButton:@"确定" actionBlock:nil];
    5. [dialog show];
  • 自定义样式:
    1. UIView *customView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 240, 60)];
    2. customView.backgroundColor = [UIColor greenColor];
    3. AUImageDialog *dialog = [[AUImageDialog alloc] initWithCustomView:customView];
    4. [dialog addButton:@"取消" actionBlock:nil];
    5. [dialog addButton:@"确定" actionBlock:nil];
    6. [dialog show];
  • 大图标样式:
    1. UIImage *image = [UIImage imageWithColor:[UIColor colorWithRGB:0xD8D8D8] size:CGSizeMake(100, 100)];
    2. AUImageDialog *dialog = [[AUImageDialog alloc] initWithLargeImage:image title:@"标题单行" message:@"说明当前状态,提示用户解决方案,最好不要超过两行" delegate:self];
    3. [dialog addButton:@"取消" actionBlock:nil];
    4. [dialog addButton:@"确定" actionBlock:nil];
    5. [dialog resetCloseIconColor:[UIColor redColor]];
    6. [dialog show];