Ios UITextField左视图模式。从未停止工作
我通过以下方式向UITextField添加了左视图:Ios UITextField左视图模式。从未停止工作,ios,swift,uitextfield,Ios,Swift,Uitextfield,我通过以下方式向UITextField添加了左视图: customTextField.leftView = searchIconView customTextField.leftViewMode = .always 但是,我以后需要从customTextField中删除该图标,并使其看起来像原来的图标。你会认为你可以这样做,它会重置: customTextField.leftView = nil customTextField.leftViewMode = .never 这不起作用。它去掉了
customTextField.leftView = searchIconView
customTextField.leftViewMode = .always
但是,我以后需要从customTextField中删除该图标,并使其看起来像原来的图标。你会认为你可以这样做,它会重置:
customTextField.leftView = nil
customTextField.leftViewMode = .never
这不起作用。它去掉了我的搜索图标,但左视图的填充仍然像在那里一样。就是这个奇怪的空格。我找到了我自己问题的答案: 设置完customTextField.leftViewMode后,我必须将其保留为。然后,当我想恢复到原始视图时,我只为左视图设置了一个新视图,该视图为零,除了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
}
}
我找到了自己问题的答案: 设置完customTextField.leftViewMode后,我必须将其保留为。然后,当我想恢复到原始视图时,我只为左视图设置了一个新视图,该视图为零,除了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
}
}