2011-05-16 2 views
3

UIWebView 내에서 발생하는 애니메이션 및 기타 화면 업데이트를 감지하려고합니다. 마지막 새로 고침 이후 수정 된 UIWebView 영역 사각형을 얻고 싶습니다.UIWebView : 화면 업데이트 추적 (더티 영역)

내가 원하는 것은 UIWebView가 setNeedsDisplayInRect를 호출하는 "트랩"하는 방법입니다. 그렇게 할 수있는 방법이 있습니까? UIWebView의 기본 CALayer 객체를 UIWebView에서 들어오는 호출을 잡는 방식으로 서브 클래 싱할 수 있습니까?

+0

그냥 업데이트 : Objective C 범주 (@implementation CALayer (MyCALayer))를 사용하여 UIWebView에서 CALayer로가는 호출을 트랩하려고했습니다. setNeedsDisplayInRect를 포함한 호출을 받고 있지만 호출을 처리 한 다음 원래의 CALayer 객체로 릴레이 할 수있는 방법이없는 것처럼 보입니다. 내가 뭘 놓치고 있니? 확실히 할 수있는 방법이 있습니까? – ldoogy

+0

이것이 가능한지 알고 싶습니다. –

+0

정말 이에 대한 답변이 필요합니다. – Luke

답변

0

이렇게하는 좋은 방법은 없습니다. UIWebView의 CALayer 스냅 샷을 잡아서 이전 스냅 샷과 비교해 볼 수는 있지만, UIWebViews의 안정적인 스냅 샷을 얻는 데는 많은 어려움을 겪고 있습니다.

0

업데이트를 기반으로 이미 수행하고있는 것처럼 Objective-C 범주 (@implementation CALayer (MyCALayer))를 사용하여 UIWebView에서 CALayer로가는 호출을 트랩합니다.

그런 다음 Method Swizzling을 사용하여 범주 재정의를 원래 CALayer 개체로 중계하십시오.

+0

모든 CALayer에게이 문제가 발생했습니다. UIWebView의 레이어는'+ (Class) layerClass'로 덮어 쓸 수 있습니다. 그러나 실제로 변경되는 계층은 사적인 하위 뷰 안에 있습니다. – Luke

관련 문제