文本框内的图像尺寸未调整大小

问题描述 投票:0回答:1

我有一个自定义文本字段,我想将图像放置在其左侧,但是当我运行该应用程序时,图像的大小并没有调整,即它的全比例且未采用所提供的宽度和高度。附带代码和图片]

ViewController类:(其中存在文本字段)导入UIKit

Class Signup2ViewController:UIViewController {

  @IBOutlet weak var Email: UITextField!

override func viewDidLoad() {
    super.viewDidLoad()

    Email.leftViewMode = .always
    let imageview = UIImageView()
    imageview.frame = CGRect(x: 0, y: 0, width: 5.0, height: 5.0)
    view.addSubview(imageview)
    let icon = UIImage(named: "c.png")
    imageview.image = icon
    Email.leftView = imageview


    // Do any additional setup after loading the view.
}

}

image of app

ios imageview uitextfield icons leftview
1个回答
0
投票

要为您的imageView设置框架,您需要继承UITextField并重写leftViewRect(forBounds:)。下面的代码将导致20x20的视图从左侧偏移10点并垂直居中。

class AwesomeTextField: UITextField {

    override func leftViewRect(forBounds bounds: CGRect) -> CGRect {
        let leftViewHeight: CGFloat = 20
        let y = bounds.size.height / 2 - leftViewHeight / 2
        return .init(x: 10, y: y, width: leftViewHeight, height: leftViewHeight)
    }
}

要将imageView添加到textField中,您可以这样做:

class ViewController: UIViewController {

    @IBOutlet weak var textField: AwesomeTextField!

    override func viewDidLoad() {
        super.viewDidLoad()

        let imageView = UIImageView()
        imageView.image = UIImage(named: "c")
        textField.leftView = imageView
        textField.leftViewMode = .always
    }
}

请确保在情节提要的身份检查器中为textField设置适当的类名称。

© www.soinside.com 2019 - 2024. All rights reserved.