【问题标题】:UITextField paddingUITextField 填充
【发布时间】:2018-05-13 23:54:04
【问题描述】:

我无法为UITextFieldleftView 属性创建填充。我现在的代码为文本创建了很好的填充,但我需要它用于 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
    }
    

结果:

【问题讨论】:

  • 所以你想要填充搜索图标?
  • @technerd 是的。我认为使paddingView 的框架的x 值可以做到这一点,但事实并非如此。
  • 尝试设置x 位置的Imageview 框架而不是paddingView

标签: ios swift uitextfield alignment padding


【解决方案1】:

你需要修改你的函数,设置imageView的frame并将paddingView'sX位置设置为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
}

【讨论】:

    【解决方案2】:

    您必须覆盖: 覆盖 func leftViewRect(forBounds bounds: CGRect) -> CGRect

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-07
      • 2013-10-22
      • 1970-01-01
      • 2019-11-27
      • 2011-04-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多