UIWebView: отслеживание обновлений экрана (грязные области)
Я пытаюсь обнаружить анимации и другие обновления экрана, как они происходят внутри UIWebView. Я хотел бы получить прямоугольники областей в UIWebView, которые были изменены с момента последнего обновления.
Я думаю, что на самом деле я ищу способ "перехватить" вызовы, которые UIWebView делает для setNeedsDisplayInRect. Есть способ сделать это? Могу ли я каким-то образом создать подкласс базового объекта CALayer в UIWebView таким образом, чтобы я мог перехватывать эти вызовы по мере их поступления из UIWebView?
2 ответа
Используйте категорию Objective C (@implementation CALayer (MyCALayer)) - как вы уже делаете на основе своего обновления - чтобы перехватывать вызовы, идущие от UIWebView к CALayer.
Затем используйте метод Swizzling, чтобы переопределить переопределения вашей категории на исходный объект CALayer.
Нет хорошего способа сделать это. Вы можете попытаться получить снимок CALayer UIWebView и сравнить его с предыдущим снимком, но у меня было много проблем с получением надежных снимков UIWebView.