簡體   English   中英

在uitextfield中添加圖標-iOS Swift

[英]add icon in uitextfield - iOS Swift

我正在嘗試在文本字段中添加圖標。 這是我的UI現在的樣子 ,下面的代碼

我希望我的UI看起來與此圖像相似

//創建視圖(holderView)以保存圖標image(image)並將視圖添加到textField(txtEmail)

    let holderView = UIView(frame: CGRect(x:0, y:0, width: 40, height: 40))

    let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 20, height: 20))

    let image = UIImage(named: "ic_lock_48pt")

    imageView.image = image

    holderView.backgroundColor = UIColor.lightGray

    holderView.addSubview(imageView)

    imageView.center = CGPoint(x: holderView.frame.size.width / 2, y: holderView.frame.size.height / 2)

    txtEmail.leftView = holderView

如果我正在花很長時間解決此問題,請告訴我

所以我想以編程方式添加約束以進行修復,下面是代碼

    holderView.translatesAutoresizingMaskIntoConstraints = false

    let leadingConstraint = NSLayoutConstraint(item: holderView, attribute: .leading, relatedBy: .equal, toItem: emailView, attribute: .leading, multiplier: 1, constant: 0)

    let trailingConstraint = NSLayoutConstraint(item: holderView, attribute: .trailing, relatedBy: .equal, toItem: emailView, attribute: .trailing, multiplier: 0.12, constant: 0)

    let topConstraint = NSLayoutConstraint(item: holderView, attribute: .top, relatedBy: .equal, toItem: emailView, attribute: .top, multiplier: 1, constant: 0)

    let bottomConstraint = NSLayoutConstraint(item: holderView, attribute: .bottom, relatedBy: .equal, toItem: emailView, attribute: .bottom, multiplier: 1, constant: 0)

//我在另一個視圖中有txtEmail(emailView)//運行下面兩行代碼中的任何一條時出錯

    emailView.addConstraints([leadingConstraint, trailingConstraint, topConstraint, bottomConstraint]) //or
   txtEmail.addConstraints([leadingConstraint, trailingConstraint, topConstraint, bottomConstraint])

請給我建議如何解決這個問題

試試他的代碼:

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    textfield.leftViewMode = UITextFieldViewMode.always
    let imageView = UIImageView(frame: CGRect(x: -1, y: 0, width: 30, height: 40))
    let image = UIImage(named: "q.png")
    imageView.backgroundColor = UIColor(white: 0.7, alpha: 0.6)
    imageView.image = image
    textfield.leftView = imageView

    textfield.layer.borderColor = UIColor(white: 0.7, alpha: 0.6).cgColor
    textfield.layer.borderWidth = 2

    imageView.layer.borderColor = UIColor(white: 0.7, alpha: 0.6).cgColor
    imageView.layer.borderWidth = 2

    textfield.layer.cornerRadius = 5
    textfield.layer.masksToBounds = true

 }

注意:您必須創建一個類似於下圖的圖標圖像才能達到效果,這全部與創建圖標並將其放置在正確的位置有關。希望這會有所幫助。

在此處輸入圖片說明

輸出:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM