2013-07-18 5 views
0

UIWebView에는 링크가 포함 된 여러 개의 포함 된 이미지가 포함 된 긴 HTML 청크가 표시됩니다. 웹보기는 스크롤 할 수 있으므로 "스크롤해야 볼 수있는 부분"의 콘텐츠에 액세스 할 수 있습니다.링크를 누른 후 UIWebView가 스크롤하지 못하도록 함

링크를 도청하면 webView:shouldStartLoadWithRequest:navigationType:navigationType 메서드를 사용하여 특정 JavaScript 호출을 catch하고 웹 뷰의 맨 위에 UIViewController의 모달로드를 트리거합니다.

링크가 탭되는 즉시 웹 페이지의 contentOffset0,0으로 재설정되므로 페이지가 맨 위로 이동하는 것처럼 보입니다. 이상적으로, webView의 contentOffset을 모달 뷰 컨트롤러가 없어 질 때까지 그대로 유지하고 싶습니다.

shouldStartLoadWithRequest 메서드가 호출되자 마자 webView.scrollView.scrollEnabled 속성을 NO으로 설정하려고 시도했습니다. 이로 인해 webView 스크롤이 중지되지 않습니다.

또한 링크가 도청 된 지점에서 contentOffset 값을 저장 한 다음 수동으로 다시 설정해 보았습니다.하지만 다시 말해서 WebView가 스크롤되지 않습니다.

이 스크롤이 발생하는 것을 방지 할 수있는 방법이 있습니까?

답변

0

이 내용은 UIWebView과 전혀 관련이 없으며 표준 브라우저 동작입니다. HTML에서

링크는

<a href="#" onClick="window.open('js-call:image-xx');"> 
    <img src='foo.jpg'> 
</a> 

문제는 내가 # 앵커를 정의하지 않았이었다 형태로 있었다, 그래서 페이지는 그래서

에 HTML을 변경할 때 위로 가기 스크롤되었다
<a name="image-xx"> 
<a href="image-xx" onClick="window.open('js-call:image-xx');"> 
    <img src='foo.jpg'> 
</a> 

으로 문제가 해결되었습니다.

관련 문제