我正在使用以下代码在文本字段中添加左视图:
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
}
但是问题是您在屏幕快照中可以看到的左视图和光标之间存在间隙。
看到光标与左视图之间的距离很小,可以看到'premB'和'@'
任何帮助或建议都会有所帮助。
答案 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