Мне нужно добавить несколько ярлыков сверху UIImageView
. Текст меток можно изменить, нажав на них. Каков наилучший способ достичь этого? Я использую язык программирования Swift. Подняв некоторые решения в stackoverflow, я нашел пару походов, которые используют метод String.drawInRect
, чтобы нарисовать текст в прямоугольнике, который затем помещается на UIImageView
. Но, как и я, я не думаю, что смогу изменить текст или даже распознать событие касания. Пожалуйста помоги.Как добавить интерактивные UILabels поверх UIImageView?
UPDATE
Мой код до сих пор:
override func viewDidLoad() {
super.viewDidLoad()
let img = UIImage(named: "Image")
let imgView = UIImageView(image: img)
self.view.addSubview(imgView)
var myLabel = UILabel()
myLabel.text = "Hello There"
myLabel.textColor = UIColor.redColor()
myLabel.font = UIFont(name: "Marker Felt", size: 20)
myLabel.accessibilityIdentifier = "this is good!"
myLabel.frame = CGRect(x: img!.size.width/2 /* - myLable.width/2 ? */, y: 0, width: img!.size.width, height: 40)
imgView.addSubview(myLabel)
imgView.userInteractionEnabled = true
myLabel.userInteractionEnabled = true
let tapGesture = UITapGestureRecognizer(target: self, action: "handlePanGesture:")
myLabel.addGestureRecognizer(tapGesture)
}
func handlePanGesture(sender: UITapGestureRecognizer) {
var senderView = sender.view as! UILabel
print(senderView.text)
senderView.text = "look how i changed!"
print(senderView.accessibilityIdentifier)
}
Пока результаты положительны у меня есть изображение с меткой на верхней части его, которая может реагировать на события нажатия. Теперь мне нужно найти ширину метки, чтобы я мог эффективно разместить ее в центре по мере необходимости. Затем мне нужно найти способ поместить метки в точную координату относительно верхнего левого угла изображения в качестве источника.
Любая помощь в этих двух задачах будет чрезвычайно оценена.
вы можете добавить gestureRecegonizers –
Использование https://github.com/null09264/FRHyperLabel которые выбирают конкретные текст с метки. Используйте Label on Image.It будет работать.it поставляется как в ObjC, так и в Swift –
@GaneshKumar вы можете быть более изобретательным? – JadeSync