Как добавить аннотации в UIImageview для программирования на iPhone - PullRequest
2 голосов
/ 29 февраля 2012

Я пытаюсь решить эту проблему, но не знаю с чего начать.У меня есть изображение карты, скажем, торгового центра, загруженного в представление uiimage, и я хотел бы добавить аннотации к imagview, а не к представлению карты.Как это будет достигнуто?Любая помощь с этим была бы великолепна.

Ответы [ 3 ]

4 голосов
/ 29 февраля 2012

Этого легко добиться, если провести аналогию с MKMapView.

В mapView аннотации добавляются к конкретному coordinate(lat,long), и они знают о своем положении, поэтому всякий раз, когда мы масштабируем или перемещаем карту, они остаются в том же месте. В вашем случае вам нужно будет использовать CGPoint(x,y) для отслеживания местоположения аннотации на imageview.

Из аналогии нужно рассмотреть два момента:

  1. Если мы увеличиваем / уменьшаем наш imageMap, то точка (x, y) для аннотации должна масштабироваться / рассчитываться надлежащим образом. (Для масштабирования)
  2. Примечания должны быть добавлены к imageMap, поэтому, если мы панорамируем imageMap, аннотации перемещаются вместе с картой, но остаются на своих местах. (Для панорамирования)

Также для обеспечения функции масштабирования и панорамирования вам нужно будет использовать UIScrollView как superview из imageMap. Для этого вам нужно обработать методы делегата.

Вы можете использовать imageView / label / button / custom view или любой другой вид для отображения аннотации и других операций аннотации.

Спасибо

2 голосов
/ 29 февраля 2012

Вы можете добавить UILabels в качестве подпредставлений к вашему UIImageView.

1 голос
/ 18 апреля 2016

Я нашел правильный подход для создания аннотации в UIImageview.Вы можете сделать это путем рисования линий между двумя точками и реализации сенсорных методов.

Более подробную информацию можно найти по этой ссылке нажмите здесь . Существует также пример проекта, который вы можете использовать.

UIGraphicsBeginImageContext(imgCorrection.frame.size)
        let context = UIGraphicsGetCurrentContext()
        imgCorrection.image?.drawInRect(CGRect(x: 0, y: 0, width: imgCorrection.frame.size.width, height: imgCorrection.frame.size.height))
        CGContextMoveToPoint(context, fromPoint.x, fromPoint.y)
        CGContextAddLineToPoint(context, toPoint.x, toPoint.y)
        CGContextSetLineCap(context, CGLineCap.Round)
        CGContextSetLineWidth(context, pointerWidth)
        CGContextSetRGBStrokeColor(context, 254.0/255.0 , 87.0/255.0,86.0/255.0, 1.0)
        CGContextSetBlendMode(context, CGBlendMode.Normal)
        CGContextStrokePath(context)
        imgCorrection.image = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
...