2017-01-10 1 views
0

Я новичок в iOS и теперь разрабатываю приложение, такое как внутренняя навигационная система, вид содержит вид прокрутки, и он содержит изображение, удерживающее мою карту, когда ненавидящий маяк рядом с ним получает свои координаты (x , y) и нарисуйте синюю точку над изображением успешно, но если я увеличиваю или уменьшаю масштаб рисунка, верните его в неправильные места. Вопрос о том, как игнорировать статус масштабирования при рисовании точки ... спасибо.Как игнорировать масштабирование при просмотре изображения Swift 3

Мой код:

self.scrollView.minimumZoomScale = 1.0 
    self.scrollView.maximumZoomScale = 2.5 

Код рисунок:

extension UIImageView { 


func addDashedLine(fromPoint start: CGPoint, toPoint end:CGPoint) { 

    print("Make sure of startr point") 
    print(start) 
    let line = CAShapeLayer() 
    let linePath = UIBezierPath() 
    linePath.move(to: start) 
    linePath.addLine(to: end) 
    line.path = linePath.cgPath 
    line.strokeColor = UIColor.blue.cgColor 
    line.lineWidth = 3 
    line.lineJoin = kCALineJoinRound 
    line.lineDashPattern = [1, 1] 
    line.zPosition = 2 
    self.layer.addSublayer(line) 


} 

}

И использование этого любой мой код, как:

let start = CGPoint(x: oldX, y: oldY) 
      let end = CGPoint(x: newX, y: newY) 
      print("old ponit is \(start)") 
      self.mapView.addDashedLine(fromPoint: start, toPoint: end) 

Перемещение кода есть:

UIView.animate(withDuration: 2.0, delay: 0.0, options: UIViewAnimationOptions.curveLinear, animations: { 

      self.dotBlue.center = CGPoint(x: x, y: y) 

      self.defaults.set(CGFloat(x), forKey: "currentLocationX") 
      self.defaults.set(CGFloat(y), forKey: "currentLocationY") 

      }, completion: { (finished: Bool) in 
       print("Animation Ended!") 
     }); 

Благодаря

ответ

0

Вы можете использовать isZoomEnabled свойство MKMapView.

Так что-то вроде

self.mapView.isZoomEnabled = false 
let start = CGPoint(x: oldX, y: oldY) 
let end = CGPoint(x: newX, y: newY) 
print("old point is \(start)") 
self.mapView.addDashedLine(fromPoint: start, toPoint: end) 
self.mapView.isZoomEnabled = true 

Просто убедитесь, что все, что вы отключили получает повторно включен, как только рисунок делается.

+0

Спасибо @Samantha, но это не сработает, я хочу немного поменять изображение. Посмотрите на большое изображение. Посмотрите на scrollView. –

+0

А, хорошо ... Я неправильно понял, извините. ScrollView - это масштабирование? Вы пытались временно установить 'maximumZoomScale' scrollView' в 1.0 и затем установить его обратно, когда чертеж закончен? – Samantha

+0

да, но все же никакого результата, я добавил код анимации перемещения маленького изображения. Вверх –