如何使用 @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 类从情节提要中更改按钮的角半径
如何使用 IBDesignable UIImageView 在 prepareForInterfaceBuilder 中加载图像