在 TextField 图标前填充
Padding before TextField Icon
我找到了在 textfield
以编程方式启动之前应用图标的方法,但主要问题是在图标之前应用填充。
因为它刚好碰到文本框的边框。
我编程如下:
override func viewWillAppear(animated: Bool) {
// Email Icon on left of email Text Field
let imageView1 = UIImageView()
let image1 = UIImage(named: "Message.png")
imageView1.image = image1
imageView1.frame = CGRectMake(100, 0, 10, 10)
emailTextField.leftView = imageView1
emailTextField.leftViewMode = UITextFieldViewMode.Always
// Password Icon on left of pass Text Field
let imageView2 = UIImageView()
let image2 = UIImage(named: "Lock.png")
imageView2.image = image2
imageView2.frame = CGRectMake(100, 0, 10, 10)
passwordTextField.leftView = imageView2
passwordTextField.leftViewMode = UITextFieldViewMode.Always
}
但是边框和图标之间的一路space非常少
有没有办法在它们之间做一个填充?
有什么办法请告诉我
您可以取一个宽度为 20 的 UIView
,并且可以将 leftVeiw
添加到此视图。现在将此视图设置为 leftView
.
您可以通过继承UITextField
轻松调整space
class field: UITextField {
override func leftViewRectForBounds(bounds: CGRect) -> CGRect {
var rect = bounds
rect.origin.x -= 10
return rect
}
override func textRectForBounds(bounds: CGRect) -> CGRect {
var rect = bounds
rect.origin.x -= 10
return rect
}
}
您只需在一行中完成此操作
textfield.layer.sublayerTransform = CATransform3DMakeTranslation(10.0f, 0.0f, 0.0f);
- 尝试创建一个 UIView(例如 contentView)和一个 UIImageView(例如 leftImage)
设置 leftImage 框架,因为它与 contenView 的 x 对齐 10 点(即)如果 contentView 的框架是 (0, 0, 25, 20) 然后设置 leftImage 的框架为(10, 0, 15, 20)
然后将leftImage作为子视图添加到contentView
现在很简单,添加 contentView 作为 textfield 的 leftView。
let leftImage = UIImageView()
let image1 = UIImage(named: "Key")
leftImage.image = image1
let contentView = UIView()
contentView.addSubview(leftImage)
contentView.frame = CGRectMake(0, 0, 25, 20)
leftImage.frame = CGRectMake(10, 0, 25, 20)
passwordTextField.leftView = contentView
passwordTextField.leftViewMode = UITextFieldViewMode.Always
Previops 输出:
最终输出:
我找到了在 textfield
以编程方式启动之前应用图标的方法,但主要问题是在图标之前应用填充。
因为它刚好碰到文本框的边框。
我编程如下:
override func viewWillAppear(animated: Bool) {
// Email Icon on left of email Text Field
let imageView1 = UIImageView()
let image1 = UIImage(named: "Message.png")
imageView1.image = image1
imageView1.frame = CGRectMake(100, 0, 10, 10)
emailTextField.leftView = imageView1
emailTextField.leftViewMode = UITextFieldViewMode.Always
// Password Icon on left of pass Text Field
let imageView2 = UIImageView()
let image2 = UIImage(named: "Lock.png")
imageView2.image = image2
imageView2.frame = CGRectMake(100, 0, 10, 10)
passwordTextField.leftView = imageView2
passwordTextField.leftViewMode = UITextFieldViewMode.Always
}
但是边框和图标之间的一路space非常少
有没有办法在它们之间做一个填充?
有什么办法请告诉我
您可以取一个宽度为 20 的 UIView
,并且可以将 leftVeiw
添加到此视图。现在将此视图设置为 leftView
.
您可以通过继承UITextField
class field: UITextField {
override func leftViewRectForBounds(bounds: CGRect) -> CGRect {
var rect = bounds
rect.origin.x -= 10
return rect
}
override func textRectForBounds(bounds: CGRect) -> CGRect {
var rect = bounds
rect.origin.x -= 10
return rect
}
}
您只需在一行中完成此操作
textfield.layer.sublayerTransform = CATransform3DMakeTranslation(10.0f, 0.0f, 0.0f);
- 尝试创建一个 UIView(例如 contentView)和一个 UIImageView(例如 leftImage)
设置 leftImage 框架,因为它与 contenView 的 x 对齐 10 点(即)如果 contentView 的框架是 (0, 0, 25, 20) 然后设置 leftImage 的框架为(10, 0, 15, 20)
然后将leftImage作为子视图添加到contentView
现在很简单,添加 contentView 作为 textfield 的 leftView。
let leftImage = UIImageView() let image1 = UIImage(named: "Key") leftImage.image = image1 let contentView = UIView() contentView.addSubview(leftImage) contentView.frame = CGRectMake(0, 0, 25, 20) leftImage.frame = CGRectMake(10, 0, 25, 20) passwordTextField.leftView = contentView passwordTextField.leftViewMode = UITextFieldViewMode.Always
Previops 输出:
最终输出: