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];
该文章对您有帮助吗?