BBADialogItem.h 5.25 KB
//
//  BBADialogItem.h
//  BBAPods-BBAUIKit
//
//  Created by hulinling on 2017/11/15.
//  Copyright © 2017年 Baidu. All rights reserved.
//

#import <UIKit/UIKit.h>
#import "BBADialogGlobalConfig.h"

@interface BBADialogItem : NSObject

@end

#pragma mark - Tip类弹窗配置

/**
 *  提示样式的对话框item (支持2种样式:图片、自定义视图)
 *
 *  若使用图片样式,则设置tipImage、didClickImageBlock属性;
 *  若使用自定义视图样式,则设置customTipView属性
 *
 *  若同时设置了tipImage、customTipView属性,则使用customTipView进行展示
 */
@interface BBADialogTipItem : BBADialogItem

/// 需要展示的图片(size是固定的,以6P为准,其size为:331 * 390)
@property (nonatomic, strong) UIImage *tipImage;
/// 若需要响应图片的点击,则设置该属性
@property (nonatomic, copy) BOOL(^didClickImageBlock)(void);

/// 自定义视图(有该属性,则忽略tipImage)
@property (nonatomic, strong) UIView *customTipView;

/// 是否展示底部关闭按钮
@property (nonatomic, assign) BOOL showCloseButton __deprecated_msg("请使用closeStyle代替");
/// 关闭按钮点击回调
@property (nonatomic, copy) void(^didCloseBlock)(void);
/// 关闭按钮的风格
@property (nonatomic, assign) BBADialogCloseStyle closeStyle;
/// 是否支持键盘监听(默认支持)
@property (nonatomic, assign) BOOL isSupportKeyboardEvent;

@end


#pragma mark - Alert弹窗配置

/// alert样式的对话框的标题item
@interface BBADialogTitleItem : BBADialogItem

/// 标题文本
@property (nonatomic, copy) NSString *title;
/**
 *  标题文本色号 (默认使用默认标题色号的色值)
 *
 *  !!! 该属性应该传递具体色值的色号,若直接传递色值(色值支持alpha,最后2位代表alpha,即:RRGGBBAA),则不会随主题切换色值 !!!
 */
@property (nonatomic, copy) NSString *titleColorInfo;

/// 标题富文本(有设置该值,则忽略上诉2个属性,以及默认色值、字体)
@property (nonatomic, copy) NSAttributedString *attrTitle;

@end

/**
 *  Alert样式的对话框的内容item (支持2种样式:文本、自定义视图)
 *
 *  若使用文本样式,则设置contentInfo、contentColorInfo、attrContentInfo其中一种属性;
 *  若使用自定义视图样式,则设置customContentView属性
 *
 *  若同时设置了文本样式和自定义视图样式的属性,则使用customContentView进行展示
 */
@interface BBADialogContentItem : BBADialogItem
/// 内容文本
@property (nonatomic, copy) NSString *contentInfo;
/**
 *  内容文本色号(默认使用默认内容色号的色值)
 *
 *  !!! 该属性应该传递具体色值的色号,若直接传递色值(色值支持alpha,最后2位代表alpha,即:RRGGBBAA),则不会随主题切换色值 !!!
 */
@property (nonatomic, copy) NSString *contentColorInfo;

/// 内容富文本(有设置该值,则忽略上诉2个属性,以及默认色值、字体)
@property (nonatomic, copy) NSAttributedString *attrContentInfo;

/**
 *  自定义视图(有设置该值,则忽略文本相关属性)
 *
 *  当自定义视图的高度超过了BBADialog.DialogAlertContentMaxHeight最大高度时,将会被添加到一个scrollView里
 */
@property (nonatomic, strong) UIView *customContentView;
/**
 *  自定义视图是否需要忽略默认边距(该属性只在有设置customContentView时,生效),该值会影响到BBADialog.DialogAlertContentMaxHeight的值
 */
@property (nonatomic, assign) BOOL ignoreDefaultPadding;

/**
 * 给弹窗添加的额外高度,该值将作用于弹窗的整体最大高度
 * @note 若弹窗的默认最大高度加上该额外高度超过了当前屏幕高度,则此时弹窗的高度将以屏幕的高度为准
 */
@property (nonatomic, assign) CGFloat additionalMaxHeight;

/// 是否支持键盘监听(默认支持)
@property (nonatomic, assign) BOOL isSupportKeyboardEvent;

@end

/// alert样式的对话框的按钮item

typedef void(^BBADialogButtonItemTapBlock)(void);

@interface BBADialogButtonItem : BBADialogItem

/// 按钮文案
@property (nonatomic, copy) NSString *title;
/**
 *  文案颜色号(若为nil,则使用默认颜色号)
 *
 *  !!! 该属性应该传递具体色值的色号,若直接传递色值(色值支持alpha,最后2位代表alpha,即:RRGGBBAA),则不会随主题切换色值 !!!
 */
@property (nonatomic, copy) NSString *titleColorInfo;

/// 按钮属性文案(若有该值,则忽略title属性)
@property (nonatomic, copy) NSAttributedString *attrTitle;
/// 按钮点击态属性文案 (该值须跟attrTitle同时存在)
@property (nonatomic, copy) NSAttributedString *selectedAttrTitle;
/// 按钮的风格
@property (nonatomic, assign) BBADialogButtonStyle style;
/// 按钮背景色号(若为nil,则使用UIButton默认颜色号)
/// !!!按钮背景色色号,若直接传递色值(色值支持alpha,最后2位代表alpha,即:RRGGBBAA),则不会随主题切换色值!!!
@property (nonatomic, copy) NSString *backgroundColorInfo;
/// 按钮点击回调
@property (nonatomic, copy) BBADialogButtonItemTapBlock didTapBlock;

+ (instancetype)itemWithTitle:(NSString *)title tapBlock:(BBADialogButtonItemTapBlock)tapBlock;

@end