Я думаю, у вас есть способы, чтобы заставить все работать так, как нужно, но, чтобы решить вашу начальную проблему "смещения" ...
В ViewController.swift
вы устанавливаете кадр imgDisplay: ImageDisplay
в self.view.bounds
--- что в данном случае будет 1024 x 768
.
Затем в ImageDisplay.swift
вы создаете aPathImage
с размером 1024 x 791
и устанавливаете это изображение в качестве подслоя.
Затем ...
Вы отслеживаете пан-жесты на основе вида с границами 1024 x 768
, затем заново рисуете эти линии на изображении 1024 x 791
, что приводит к«сдвиг».
Обратите внимание, что если вы измените размер изображения на 800 x 600
, сдвиг будет очень очевидным, и будет немного легче увидеть, как он связан с разницей в размерах.
Что вы, вероятно, хотите сделать, это установить размер кадра imgDisplay
равным размеру изображения.
Попробуйте, чтобы увидеть, что происходит - в ImageDisplay.swift
:
override init(frame: CGRect) {
super.init(frame: frame)
// add this line
self.frame = CGRect(origin: .zero, size: aPathImage.sizeCurrent)
self.contentMode = .center
...
Теперь ваши координаты панорамирования будут совпадать с координатами содержащегося изображения.
Как я уже сказал, у вас все еще есть пути, нонадеюсь, это поможет вам на этом пути.