对于我的UITextField,我希望删除边框。因此,我尝试将其边框颜色更改为背景颜色(边框宽度为1),但这样做时,角落处会看到微弱的边框线。接下来,我在属性检查器中将边框样式设置为none。当我运行应用程序时,边框消失了。但是,当在其中输入文本时,文本将在左侧裁剪,如图所示。我尝试在文本字段中添加填充视图,但它没有解决问题。我该如何解决这个问题?
修改
文本字段后跟一个标签。由于我希望标签遵循文本字段内容,因此我没有设置文本字段的宽度。这显示在图像中。当我使用 leftViewMode 添加填充视图作为始终时,设计未呈现,我收到控制台消息:
- 在仅变换图层中更改属性masksToBounds将无效
根据@ Surjeet链接中的一个答案,我尝试将textField扩展为:
class CustomTextField: UITextField {
required init?(coder aDecoder: NSCoder){
super.init(coder: aDecoder)
}
override func textRect(forBounds bounds: CGRect) -> CGRect {
return CGRect(x: bounds.origin.x + 10, y: bounds.origin.y, width: bounds.size.width, height: bounds.size.height)
}
override func editingRect(forBounds bounds: CGRect) -> CGRect {
return self.textRect(forBounds: bounds)
}
}
但问题仍未解决。
答案 0 :(得分:0)
您可以为文本字段添加左侧填充,您的问题应该得到解决。
Swift 4
let paddingView: UIView = UIView.init(frame: CGRect(x: 0, y: 0, width: 5, height: 20))
textField.leftView = paddingView
textField.leftViewMode = .always
答案 1 :(得分:0)
text_field.setLeftPaddingPoints(10)
text_field.setRightPaddingPoints(10)
extension UITextField {
func setLeftPaddingPoints(_ amount:CGFloat){
let paddingView = UIView(frame: CGRect(x: 0, y: 0, width: amount, height: self.frame.size.height))
self.leftView = paddingView
self.leftViewMode = .always
}
func setRightPaddingPoints(_ amount:CGFloat) {
let paddingView = UIView(frame: CGRect(x: 0, y: 0, width: amount, height: self.frame.size.height))
self.rightView = paddingView
self.rightViewMode = .always
}
}