[objective-c] UIScrollView 내부의 UIWebView를 확대하려면 어떻게해야합니까?

나는이 UIWebView돌며있는 UIScrollView(있는 ScrollView 다른 구성 요소를 포함)를

Interface Builder 또는 Programmatic 에서 멀티 터치를 활성화하려고 UIWebView했지만 여전히 HTML을 확대 할 수 없습니다. UIScrollView및 에서 확대를 모두 처리해야 UIWebView합니까? 아니면 내가 설정하지 않은 것이 있습니까?



답변

UIWebView에서 핀치 및 확대 / 축소가 작동하려면 scalesPageToFit = YES를 설정해야합니다.


답변

위의 내용과 다음 사항을 모두 수행해야합니다. 기본보기에서 웹보기가 있었지만 작동하지 않았습니다.

  1. 위와 같이 먼저 UIScrollView를 기본보기에 배치 한 다음 웹보기를 스크롤보기에 배치해야합니다.
  2. 위와 같이 <UIScrollViewDelegate>뷰 컨트롤러에서 구현 하고 스크롤 뷰 대리자를 Interface Builder의 뷰 컨트롤러로 드래그하고 viewForZoomingInScrollView메서드를 구현하십시오 . UIScrollView에 대한 포인터를 반환해야합니다 (myScrollView를 반환).
  3. 웹보기와 스크롤보기 모두에 대한 IBOutlet 속성을 만들었습니다-NIB에서보기 컨트롤러에 연결하십시오.
  4. 스크롤보기에서 속성 관리자로 이동하여 최대 및 최소 줌 배율을 설정하십시오 (0.5에서 5.0으로 설정하면 잘 작동합니다).
  5. 웹보기의 속성 관리자에서 :
  6. 웹보기 섹션에서 페이지 비율에 맞게 조정을 선택하십시오.
  7. 보기 섹션에서 모드, “맨 위 왼쪽”을 선택하십시오.
  8. 하단의보기 섹션에서 사용자 상호 작용 사용 및 다중 터치 사용을 선택하십시오.

답변

내가 찾은 Oly 솔루션이 부드럽 지 않지만 JavaScript를 사용하면 줌 레벨을 제어 할 수 있습니다.

당신이 있다고 말하십시오 <head>:

<meta id="vp" name="viewport" content="width=768,initial-scale=1.0">

4 배로 확대하고 사용자가 확대 / 축소를 변경할 수있게하려면 내용을 두 번 변경하십시오.

var vp = document.getElementById('vp');
vp.content = "width=767,minimum-scale=4.0,maximum-scale=4.0,user-scalable=yes";
vp.content = "width=768,minimum-scale=0.25,maximum-scale=10.0,user-scalable=yes";

너비를 토글하는 것이 매우 중요합니다. 그렇지 않으면 Mobile Safari에 심각한 재 페인팅 버그가 있습니다 (과다 최적화로 인해).

initial-scale다시 설정할 수 없으며 두 번째 무시됩니다.


답변

컨트롤러에서 viewForZoomingInScrollView 메서드를 구현해야합니다. 그렇지 않으면 확대 / 축소로 아무 작업도 수행하지 않습니다. (왜 이것이 필요한지 잘 모르겠지만 거기에 있습니다.)

자세한 정보는 http://developer.apple.com/iphone/library/documentation/WindowsViews/Conceptual/UIScrollView_pg/ZoomZoom/ZoomZoom.html을 참조 하십시오 .


답변