在文本框中放置图像时CGRect函数不起作用

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

我正在尝试在textfield中设置图像,为此,我正在代码中创建图像视图,但是当我尝试通过CGRect(x:int,y:int,width:int,height调整其宽度和高度时, :int),则不会应用它,并且图像大小仍然是原始的。我看过太多关于将图像放置在文本字段中的教程,并且所有这些教程都在使用CGRect及其对它们的工作,因为图像的大小可以得到它们在CGRect中的应用,但对我而言不是。以下是我尝试使用的代码。图像也被附加。文本框样式为四舍五入(默认),图标大小为50px。enter image here

UIViewController

导入UIKit

类ViewController:UIViewController {

@IBOutlet weak var email: UITextField!
override func viewDidLoad() {
    super.viewDidLoad()
    update()
    // Do any additional setup after loading the view.
}

func update() {
    email.leftViewMode = .always
    let imageview = UIImageView()
    let image = UIImage(named: "icon")
    imageview.image = image
    imageview.frame = CGRect(x: 15, y: 0, width: 50 , height: 50)
    email.leftView = imageview
}

}

[此外,我尝试将图像资产中的“渲染为”更改为“模板”,但仍无法正常工作。

ios image uitextfield cgrect leftview
1个回答
1
投票

嘿,我尝试过以编程方式进行操作,并且对我有用。在iPad操场上迅速起草。试试这个:

class Test: UIViewController {

let lable = UITextField()
let image = UIImage()

override func viewDidLoad() {
    super.viewDidLoad()
    self.view.backgroundColor = .white
    lable.frame = CGRect(x: 200, y: 200, width: 300 , height: 50)
    lable.backgroundColor = .black
    update()
    self.view.addSubview(lable)
}

func update() {
    lable.leftViewMode = .always
    let imageview = UIImageView()
    let image = UIImage(systemName: "icloud")
    imageview.image = image
    imageview.frame = CGRect(x: 15, y: 0, width: 50 , height: 50)
    lable.leftView = imageview
    self.view.addSubview(imageview)
}

}

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