У меня проблема с производительностью.
Я создал UIView и переписал его функцию drawRect. При этой функции я рисовал изображение (большое) и поверх него белый квадрат на весь экран с многоугольником внутри него с помощью CGContextEOFillPath. В результате отображается белый экран с отображаемой частью изображения (определенной многоугольником).
После этого я создал функцию для анимации перехода этого многоугольника в другой. Помимо полигональной анимации, изображение также должно быть масштабировано и перемещено, чтобы зафиксировать изображение на экране. Я сделал это с NSTimer. Анимация многоугольника состоит в том, чтобы вычислить расстояние между каждой вершиной и затем переместиться в положение согласно elapsedTime. Он отлично работал на симуляторе, но на самом деле застрял на устройстве.
Читая о производительности, здесь, в stackoverflow, я нашел альтернативу для использования beginAnimations и commitAnimations. Я изменяю все, чтобы использовать этот подход с изображением. Но что я могу сделать с полигоном. Многоугольник рисуется с помощью CGContextMoveToPoint и CGContextAddLineToPoint, поэтому я считаю, что его нельзя анимировать с помощью beginAnimations. Я правильно? Есть ли лучший подход для этого?
Желаемый результат - что-то вроде этого приложения для чтения комиксов: http://www.comixology.com/iphoneapp (нажмите на экскурсию. В середине видео они показывают функцию «автоматической маскировки»)