Функция CGRect не работает при размещении изображения в текстовом поле - PullRequest
0 голосов
/ 12 апреля 2020

Я пытаюсь установить изображение внутри текстового поля, и для этого я создаю представление изображения в коде, но когда я пытаюсь настроить его ширину и высоту с помощью CGRect (x: int, y: int, width: int, height: int), он не применяется, а размер изображения остается оригинальным. Я видел очень много учебных пособий для размещения изображения в текстовом поле, и все они используют CGRect и его работу для них, поскольку размер изображения получает то, что они применяют в CGRect, но не для меня. Ниже приведен код, который я пытаюсь использовать. Изображение также прилагается. Стиль текстового поля округляется (по умолчанию), а размер значка составляет 50 пикселей. enter image here

UIViewController

import 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
}

}

Кроме того, я попытался изменить 'Render as' на 'template' в активах изображений, но он все еще не работает.

1 Ответ

1 голос
/ 13 апреля 2020

Эй, я пытался сделать это программно, и это работает для меня. Быстро разработал его на 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)
}

}

...