全部产品

普通输入框

更新时间:2019-09-26 18:38:01

AUInputBox 为普通输入框,支持左侧标题以及右侧图像按钮。

效果图


接口说明

  1. typedef NS_ENUM(NSInteger, AUInputBoxType)
  2. {
  3. AUInputBoxTypeMobileNumber, // 手机号码
  4. AUInputBoxTypeCreditCard, // 信用卡
  5. AUInputBoxTypeBankCard, // 借记卡
  6. AUInputBoxTypeAmount, // 金额
  7. AUInputBoxTypeIDNumber, // 身份证
  8. AUInputBoxTypeNotEmpty, // 非空
  9. AUInputBoxTypeAlipayAccount, // mPaaS 应用账号
  10. AUInputBoxTypeNone // 不校验
  11. };
  12. typedef enum AUInputBoxStyle
  13. {
  14. AUInputBoxStyleNone, // 没有背景图片
  15. AUInputBoxStyleiOS6, // 圆角的背景图片
  16. AUInputBoxStyleiOS7 // 非圆角的背景图片
  17. } AUInputBoxStyle;
  18. /**
  19. 普通输入框,可带标题文字,按钮图片样式
  20. */
  21. @interface AUInputBox : UIView
  22. #pragma mark - AUInputBox 属性
  23. // 文本输入框
  24. @property(strong, nonatomic) AUTextField *textField;
  25. @property(strong, nonatomic) NSString *textFieldText;
  26. @property(strong, nonatomic) NSString *textFieldFormat;
  27. @property(assign, nonatomic) CGFloat horizontalMargin;
  28. @property(assign, nonatomic) CGFloat textFieldHorizontalMargin;
  29. // 按钮
  30. @property(strong, nonatomic) UIButton *iconButton;
  31. @property(assign, nonatomic) BOOL hidesButtonWhileNotEmpty;
  32. @property(assign, nonatomic) BOOL hidesButton;
  33. // 显示在输入框左边的 lable
  34. @property(nonatomic, readonly) UILabel *titleLabel;
  35. @property(nonatomic, assign) CGFloat titleLabelWidth;
  36. // 样式、验证器、背景图、文本框类型
  37. @property(assign, nonatomic) AUInputBoxStyle style;
  38. @property(readonly, nonatomic) UIImageView *backgroundImage;
  39. @property(assign, nonatomic) AUInputBoxType inputBoxType;
  40. #pragma mark - AUInputBox 静态方法
  41. /**
  42. * 创建输入框组件
  43. * @param originY 输入框的 Y 坐标
  44. * @param type 文本输入框的类型
  45. * @return 输入框组件
  46. */
  47. + (instancetype)inputboxWithOriginY:(CGFloat)originY inputboxType:(AUInputBoxType)type;
  48. /**
  49. * 创建带图标按钮的输入框组件
  50. * @param originY 输入框的 Y 坐标
  51. * @param icon 按钮上的图标,44x44
  52. * @param type 文本输入框的类型
  53. * @return 带按钮的输入框组件
  54. */
  55. + (instancetype)inputboxWithOriginY:(CGFloat)originY buttonIcon:(UIImage *)icon inputboxType:(AUInputBoxType)type;
  56. /**
  57. * @return 控件高度,默认值为 44,iPhone6 plus 为 47
  58. */
  59. + (float)heightOfControl;
  60. #pragma mark - AUInputBox 实例方法
  61. - (instancetype)initWithFrame:(CGRect)frame inputboxType:(AUInputBoxType)type;
  62. - (void)buildIconButton:(UIImage *)icon;
  63. /**
  64. * 按照指定格式对文本添加空格
  65. * @param text 文本内容
  66. * @return 添加空格后的文本
  67. */
  68. - (NSString *)formatText:(NSString *)text;
  69. /**
  70. * 对于没有在初始化时指定 icon 的 inputBox, 可以使用此方法添加
  71. * @param icon 按钮上的图标
  72. *
  73. */
  74. - (void)setRightButtonIcon:(UIImage *)icon;
  75. /**
  76. * 检查输入的有效性.
  77. */
  78. - (BOOL)checkInputValidity;
  79. /**
  80. * 过滤文本,只可输入数字,限定最大长度
  81. * 参数为相应 delegate 参数,maxLength 为最大长度
  82. */
  83. - (BOOL)shouldChangeRange:(NSRange)range replacementString:(NSString *)string withMaxLength:(int)maxLength;
  84. /**
  85. * 限定最大长度
  86. * @maxLength 最大长度,不包括 format 的空格
  87. */
  88. - (BOOL)shouldChangeRange:(NSRange)range replacementString:(NSString *)string withFormatStringMaxLength:(int)maxLength;

代码示例

  • 普通输入框:

    1. AUInputBox *inputBox = [AUInputBox inputboxWithOriginY:startY inputboxType:AUInputBoxTypeNone];
    2. inputBox.titleLabel.text = @"提示文本";
    3. inputBox.textField.placeholder = @"请按提示输入";
    4. [self.view addSubview:inputBox];
  • 图片按钮:

    1. AUInputBox *iconInputBox = [AUInputBox inputboxWithOriginY:startY buttonIcon:image inputboxType:AUInputBoxTypeNone];
    2. iconInputBox.titleLabel.text = @"提示文本";
    3. iconInputBox.textField.placeholder = @"请按提示输入";
    4. [self.view addSubview:iconInputBox];