我通过以下方式向我的UITextField添加了一个左视图:
customTextField.leftView = searchIconView
customTextField.leftViewMode = .always
但是,我后来需要从customTextField中删除该图标并使其看起来像原始图标。你会认为你可以这样做,它会重置:
customTextField.leftView = nil
customTextField.leftViewMode = .never
这不起作用。它摆脱了我的搜索图标,但左视图的填充仍然像它在那里一样。只是这个奇怪的空白。
答案 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
}
}