Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UITextField左视图模式。从未停止工作_Ios_Swift_Uitextfield - Fatal编程技术网

Ios UITextField左视图模式。从未停止工作

Ios UITextField左视图模式。从未停止工作,ios,swift,uitextfield,Ios,Swift,Uitextfield,我通过以下方式向UITextField添加了左视图: customTextField.leftView = searchIconView customTextField.leftViewMode = .always 但是,我以后需要从customTextField中删除该图标,并使其看起来像原来的图标。你会认为你可以这样做,它会重置: customTextField.leftView = nil customTextField.leftViewMode = .never 这不起作用。它去掉了

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

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
    }
}