У меня есть проблема, и я надеюсь, что вы можете помочь мне с этим.Кстати, для iPad.
У меня есть UIScrollView, UIImageView, CAShapeLayer и CGMutablePathRef.
1 - Итак, я загрузил изображение в UIImageView
2- Затем я проанализировал все пути из файла, затем добавил их в CAShapeLayer (ы), т.е. каждый CAShapeLayer - это путь.
3 - Затем я добавил все CAShapeLayer (s) в UIImageView.layer
4- Я выполнил шаг 3, чтобы использовать приведенную ниже функцию, чтобы вернуть представление, содержащее изображение и контуры.Это помогает масштабировать пути и изображение вместе.
- (UIView *)viewForZoomingInScrollView: (UIScrollView *)scrollView
{
return myUIImageView;
}
5- Затем я добавил UIImageView в UIScrollView.
6 - Затем я создал подкласс UIScrollView, чтобы я мог получить touchSecan и т. Д..
* Примечание. Все мои сенсорные события, такие как touchesBegan, могут определять все пути, когда я нажимаю на них, используя CGPathContainsPoint (aLayer.path, & transf, touchPoint, NO).Кроме того, я могу прокручивать вид после масштабирования, и он отлично работает.
* Теперь проблема в следующем:
Всякий раз, когда я увеличиваю / уменьшаю, CAShapeLayer(s) масштабируются нормально, но кажется, что (исходные координаты путей) не масштабируются, или, по крайней мере, это то, во что я верю.Я говорю это потому, что когда я нажимаю на CAShapeLayer, они не отвечают, но когда я нажимаю на их исходное место или рядом с тем местом, где показан CAShapeLayer, я получаю ответ CAShapeLayer.
Я попытался собрать все элементы CAShapeLayer в массив, стереть их из представления и снова добавить их, но ничего не изменилось.Я пробовал и другие вещи, такие как попытки масштабировать CAShapeLayer отдельно, добавляя CAShapeLayer в UIScrollView вместо UIImageView.Затем я получаю текущий примененный масштаб и применяю его ко всем слоям CAShapeLayer, но это не дает хорошего результата.
-Проверьте прикрепленные скриншоты.Я надеюсь, что они помогут.
Я надеюсь, что вы можете помочь мне с этим, заранее спасибо.
* Перед масштабированием изображения: http://imageshack.us/photo/my-images/193/beforescaling.jpg/
* После масштабирования изображения: http://imageshack.us/photo/my-images/818/afterscaling.jpg/
** Отредактировано:
-Потенциальные решения:
1- Возможно, мне нужно обновить CATransform3DIdentity CAShapeLayer.Однако я пока не знаю, как это сделать.
2 - Возможно, мне нужно использовать CATransform3DTranslate, но я пока не знаю, как его использовать.