[英]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
}
但是邊框和圖標之間的一路空間非常小。
有沒有辦法在它們之間進行填充?
請讓我知道是否有任何方法。
設置leftImage框架,因為它與contenView的x (即)對齊10個點,如果contentView的框架為( 0,0,25,20 ),則將leftImage的框架設置為( 10,0,15,20 )
然后將leftImage作為子視圖添加到contentView
現在很簡單,將contentView添加為textView的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輸出:
最終產出:
你可以使用一個寬度為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);
類視圖控制器:UIViewController {
@IBOutlet weak var passTextfield: UITextField!
@IBOutlet weak var emailTextfield: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
let emailImage = UIImage(named:"email")
addLeftImageTo(txtfield: emailTextfield, andImage:emailImage!)
let passwordImage = UIImage(named:"password")
addLeftImageTo(txtfield: passTextfield, andImage:passwordImage!)
}
func addLeftImageTo(txtfield:UITextField,andImage img:UIImage) {
let leftImageView=UIImageView(frame:CGRect(x:10, y: 0, width: 25, height: 20))
leftImageView.image=img
let view = UIView(frame: CGRect(x: 0, y: 0, width: 35, height: 20))
view.addSubview(leftImageView)
txtfield.leftView=view
txtfield.leftViewMode = .always
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.