UITextField左视图模式。不工作

时间:2018-01-25 22:31:58

标签: ios swift uitextfield

我通过以下方式向我的UITextField添加了一个左视图:

customTextField.leftView = searchIconView
customTextField.leftViewMode = .always

但是,我后来需要从customTextField中删除该图标并使其看起来像原始图标。你会认为你可以这样做,它会重置:

customTextField.leftView = nil
customTextField.leftViewMode = .never

这不起作用。它摆脱了我的搜索图标,但左视图的填充仍然像它在那里一样。只是这个奇怪的空白。

1 个答案:

答案 0 :(得分:2)

我找到了自己问题的答案:

我必须在设置后将customTextField.leftViewMode保留为.always。然后,当我想恢复原始时,我只为左视图设置了一个新视图,除了具有customTextField的原始填充之外的所有内容都是零。

customTextField.leftView = UIView(frame: CGRect(origin: .zero, size: CGSize(width: customTextField.originalLeftPadding, height: 0)))

我通过为我的customTextField继承UITextField来获取原始文本字段填充,然后我只保留原始左边填充作为变量:

class CustomTextField : UITextField {
    var originalLeftPadding: CGFloat = 0

    override init(frame: CGRect) {
        super.init(frame: frame)
        originalLeftPadding = leftPadding
    }
}