Добавить метку в центр imageView - PullRequest
0 голосов
/ 09 октября 2018

У меня есть два изображения, как на картинке в конце вопроса (изображение списка и красная точка).Я хочу добавить метку в центре красной точки.Это мой код, который не работает:

image = UIImageView(image: UIImage(named: "pallino"))
image.frame = CGRect(x: 55, y: self.view.frame.height-60, width: 22, height: 22)
self.view.addSubview(image)
image.layer.cornerRadius = image.frame.width/2
label = UILabel(frame: CGRect(x: self.image.center.x, y: self.image.center.y, width: image.frame.size.width, height: image.frame.size.height))
label.text = "4"
label.font = UIFont(name:"HelveticaNeue-Bold", size: 15.0)
label.translatesAutoresizingMaskIntoConstraints = false
label.textColor = UIColor.black
image.addSubview(label)

Может кто-нибудь сказать мне, если я не прав?

enter image description here

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

Вы можете установить ограничение в вашей метке (по центру по горизонтали и вертикали).Попробуйте ввести следующий код.

let label = UILabel()
label.text = "4"
label.font = UIFont(name:"HelveticaNeue-Bold", size: 15.0)
label.translatesAutoresizingMaskIntoConstraints = false
label.textColor = UIColor.black
image.addSubview(label)
label.centerXAnchor.constraint(equalTo: self.image.centerXAnchor).isActive = true
label.centerYAnchor.constraint(equalTo: self.image.centerYAnchor).isActive = true
0 голосов
/ 09 октября 2018

Проблема в этой строке:

label = UILabel(frame: CGRect(x: self.image.center.x, y: self.image.center.y, width: image.frame.size.width, height: image.frame.size.height))

self.image.center.x - Центральная точка указывается в точках в системе координат ее суперпредставления , это означает, что self.image.center не является центром image

Вам нужен кадр для метки, что-то вроде этого:

let imageSize = 22
let frame = CGRect(x: 0, y: 0, width: imageSize, height: imageSize)
let label = UILabel(frame: frame)
label.aligment = .center
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...