AUInputBox 为普通输入框,支持左侧标题以及右侧图像按钮。
效果图
接口说明
typedef NS_ENUM(NSInteger, AUInputBoxType)
{
AUInputBoxTypeMobileNumber, // 手机号码
AUInputBoxTypeCreditCard, // 信用卡
AUInputBoxTypeBankCard, // 借记卡
AUInputBoxTypeAmount, // 金额
AUInputBoxTypeIDNumber, // 身份证
AUInputBoxTypeNotEmpty, // 非空
AUInputBoxTypeAlipayAccount, // mPaaS 应用账号
AUInputBoxTypeNone // 不校验
};
typedef enum AUInputBoxStyle
{
AUInputBoxStyleNone, // 没有背景图片
AUInputBoxStyleiOS6, // 圆角的背景图片
AUInputBoxStyleiOS7 // 非圆角的背景图片
} AUInputBoxStyle;
/**
普通输入框,可带标题文字,按钮图片样式
*/
@interface AUInputBox : UIView
#pragma mark - AUInputBox 属性
// 文本输入框
@property(strong, nonatomic) AUTextField *textField;
@property(strong, nonatomic) NSString *textFieldText;
@property(strong, nonatomic) NSString *textFieldFormat;
@property(assign, nonatomic) CGFloat horizontalMargin;
@property(assign, nonatomic) CGFloat textFieldHorizontalMargin;
// 按钮
@property(strong, nonatomic) UIButton *iconButton;
@property(assign, nonatomic) BOOL hidesButtonWhileNotEmpty;
@property(assign, nonatomic) BOOL hidesButton;
// 显示在输入框左边的 label
@property(nonatomic, readonly) UILabel *titleLabel;
@property(nonatomic, assign) CGFloat titleLabelWidth;
// 样式、验证器、背景图、文本框类型
@property(assign, nonatomic) AUInputBoxStyle style;
@property(readonly, nonatomic) UIImageView *backgroundImage;
@property(assign, nonatomic) AUInputBoxType inputBoxType;
#pragma mark - AUInputBox 静态方法
/**
* 创建输入框组件
* @param originY 输入框的 Y 坐标
* @param type 文本输入框的类型
* @return 输入框组件
*/
+ (instancetype)inputboxWithOriginY:(CGFloat)originY inputboxType:(AUInputBoxType)type;
/**
* 创建带图标按钮的输入框组件
* @param originY 输入框的 Y 坐标
* @param icon 按钮上的图标,44x44
* @param type 文本输入框的类型
* @return 带按钮的输入框组件
*/
+ (instancetype)inputboxWithOriginY:(CGFloat)originY buttonIcon:(UIImage *)icon inputboxType:(AUInputBoxType)type;
/**
* @return 控件高度,默认值为 44,iPhone6 plus 为 47
*/
+ (float)heightOfControl;
#pragma mark - AUInputBox 实例方法
- (instancetype)initWithFrame:(CGRect)frame inputboxType:(AUInputBoxType)type;
- (void)buildIconButton:(UIImage *)icon;
/**
* 按照指定格式对文本添加空格
* @param text 文本内容
* @return 添加空格后的文本
*/
- (NSString *)formatText:(NSString *)text;
/**
* 对于没有在初始化时指定 icon 的 inputBox, 可以使用此方法添加
* @param icon 按钮上的图标
*
*/
- (void)setRightButtonIcon:(UIImage *)icon;
/**
* 检查输入的有效性.
*/
- (BOOL)checkInputValidity;
/**
* 过滤文本,只可输入数字,限定最大长度
* 参数为相应 delegate 参数,maxLength 为最大长度
*/
- (BOOL)shouldChangeRange:(NSRange)range replacementString:(NSString *)string withMaxLength:(int)maxLength;
/**
* 限定最大长度
* @maxLength 最大长度,不包括 format 的空格
*/
- (BOOL)shouldChangeRange:(NSRange)range replacementString:(NSString *)string withFormatStringMaxLength:(int)maxLength;
代码示例
普通输入框:
AUInputBox *inputBox = [AUInputBox inputboxWithOriginY:startY inputboxType:AUInputBoxTypeNone]; inputBox.titleLabel.text = @"提示文本"; inputBox.textField.placeholder = @"请按提示输入"; [self.view addSubview:inputBox];
图片按钮:
AUInputBox *iconInputBox = [AUInputBox inputboxWithOriginY:startY buttonIcon:image inputboxType:AUInputBoxTypeNone]; iconInputBox.titleLabel.text = @"提示文本"; iconInputBox.textField.placeholder = @"请按提示输入"; [self.view addSubview:iconInputBox];
文档内容是否对您有帮助?