如何使用 @IBDesignable 和 @IBInspectable 制作 uitextfield 的自定义子类并在那里我可以从左侧设置占位符填充

Posted

技术标签:

【中文标题】如何使用 @IBDesignable 和 @IBInspectable 制作 uitextfield 的自定义子类并在那里我可以从左侧设置占位符填充【英文标题】:How can I make a custom subclass of uitextfield and over there using @IBDesignable & @IBInspectable I can set placholder padding from left 【发布时间】:2017-03-17 07:34:48 【问题描述】:

我想通过使用@IBDesignable 和@IBInspectable 来创建UITextField 的子类,并设置文本的左侧和右侧填充以及占位符。可以忽略左右视图。

【问题讨论】:

你可以使用 func placeholderRect(forBounds bounds: CGRect) -> CGRect 作为占位符 这是文本:func textRect(forBounds bounds: CGRect) -> CGRect 【参考方案1】:

为您的文本字段创建一个自定义类,并将您的文本字段类指定为CustomTextField

class CustomTextField: UITextField 

  @IBInspectable var padding : CGFloat = 0 
      didSet
              let paddingView : UIView = UIView(frame: CGRect(x: 0, y: 0, width: padding, height: self.frame.size.height))
              self.leftView = paddingView
              self.rightView = paddingView
              self.leftViewMode = .always
    
  
 

然后,您可以从情节提要中设置填充。并且占位符可以从故事板中的Attributes Inspector 设置。

【讨论】:

以上是关于如何使用 @IBDesignable 和 @IBInspectable 制作 uitextfield 的自定义子类并在那里我可以从左侧设置占位符填充的主要内容,如果未能解决你的问题,请参考以下文章

IBDesignable UIButton 子类

如何在 IBDesignable 文件中设置高度约束?

如何使用创建的自定义 IBDesignable 类从情节提要中更改按钮的角半径

如何使用 IBDesignable UIImageView 在 prepareForInterfaceBuilder 中加载图像

如何创建 IBDesignable 自定义视图?

如何从 UIBezierPath 创建 IBDesignable 自定义 UIView?