UITextField 填充
UITextField padding
我无法为 UITextField
的 leftView
属性 创建填充。我现在拥有的代码为文本创建了很好的填充,但我需要它用于 imageView。
UITextField子类方法:
请注意 paddingView
框架的 x
位置没有像预期那样将视图扩展到右侧。
func setLeftView(imageView: UIImageView, withPadding padding: CGFloat) {
let height = imageView.frame.height
let width = imageView.frame.width + padding
let paddingView = UIView(frame: CGRect(x: 36, y: 0, width: width, height: height))
paddingView.addSubview(imageView)
self.leftView = paddingView
self.leftViewMode = .always
}
结果:
您需要更改您的功能,只需设置 imageView
的框架并将 paddingView's
X 位置设置为 0
func setLeftView(imageView: UIImageView, withPadding padding: CGFloat) {
let height = imageView.frame.height
let width = imageView.frame.width + padding
// Set x position to 0
let paddingView = UIView(frame: CGRect(x: 0, y: 0, width: width, height: height))
/// You need to set frame of imageView so put this line
imageView.frame = CGRect(x: padding, y: 0, width: imageView.frame.width, height: height)
paddingView.addSubview(imageView)
self.leftView = paddingView
self.leftViewMode = .always
}
你必须覆盖:
override func leftViewRect(forBounds bounds: CGRect) -> CGRect
我无法为 UITextField
的 leftView
属性 创建填充。我现在拥有的代码为文本创建了很好的填充,但我需要它用于 imageView。
UITextField子类方法:
请注意
paddingView
框架的x
位置没有像预期那样将视图扩展到右侧。func setLeftView(imageView: UIImageView, withPadding padding: CGFloat) { let height = imageView.frame.height let width = imageView.frame.width + padding let paddingView = UIView(frame: CGRect(x: 36, y: 0, width: width, height: height)) paddingView.addSubview(imageView) self.leftView = paddingView self.leftViewMode = .always }
结果:
您需要更改您的功能,只需设置 imageView
的框架并将 paddingView's
X 位置设置为 0
func setLeftView(imageView: UIImageView, withPadding padding: CGFloat) {
let height = imageView.frame.height
let width = imageView.frame.width + padding
// Set x position to 0
let paddingView = UIView(frame: CGRect(x: 0, y: 0, width: width, height: height))
/// You need to set frame of imageView so put this line
imageView.frame = CGRect(x: padding, y: 0, width: imageView.frame.width, height: height)
paddingView.addSubview(imageView)
self.leftView = paddingView
self.leftViewMode = .always
}
你必须覆盖: override func leftViewRect(forBounds bounds: CGRect) -> CGRect