减少文本字段中左视图与光标之间的间隙

时间:2018-09-29 05:58:30

标签: ios swift textfield

我正在使用以下代码在文本字段中添加左视图:

func setUI()
{
    txtUserCode.leftViewMode = .always
    let label = UILabel(frame: CGRect(x: 7, y: 0, width: 18, height: txtUserCode.frame.size.height))
    label.text = "@"
    txtUserCode.leftView?.frame = CGRect(x: 0, y: 0, width: 18, height: txtUserCode.frame.size.height)
    txtUserCode.leftView = label
    label.backgroundColor = UIColor.green
    txtUserCode.leftView?.backgroundColor = UIColor.red
}

但是问题是您在屏幕快照中可以看到的左视图和光标之间存在间隙。

enter image description here

看到光标与左视图之间的距离很小,可以看到'premB'和'@'

任何帮助或建议都会有所帮助。

1 个答案:

答案 0 :(得分:1)

将您的代码更新到下面。

func setUI()
{
    txtUserCode.leftViewMode = .always
    let label = UILabel(frame: CGRect(x: 7, y: 0, width: 18, height: txtUserCode.frame.size.height))
    label.text = "@"
    label.sizeToFit()
    label.frame = CGRect(x: 7, y: 0, width: label.frame.size.width, height: txtUserCode.frame.size.height)
    txtUserCode.leftView?.frame = CGRect(x: 0, y: 0, width: label.frame.size.width, height: txtUserCode.frame.size.height)
    txtUserCode.leftView = label
    label.backgroundColor = UIColor.green
    txtUserCode.leftView?.backgroundColor = UIColor.red
}

要获取确切的尺寸,请首先为标签设置sizeToFit,而不是18,然后指定标签的宽度。

添加以下行,然后重试。

txtUserCode.borderStyle = .none