2013-12-09 23 views
5

Tôi đang tải văn bản HTML trong UIWebView. Trang đang tải hoàn hảo với độ phóng đại mặc định bằng 1,0. Thuộc tính scalesPageToFit của UIWebView được đặt thành YES, vì vậy trang có thể được phóng to/thu nhỏ bằng cử chỉ chụm. Điều tôi muốn làm là đặt nội dung ban đầu của webView thu phóng thành 2.0.Thay đổi không hoạt ảnh của thu phóng của UIWebView làm mờ nội dung

Tôi đã thử mã này:

webView.scrollView.zoomScale = 2.0; 

Nhưng nội dung xuất hiện mờ, và xem web lại làm cho nội dung mà không làm mờ ngay sau khi tôi bắt đầu nhúm phóng to với cử chỉ.

FYI, phiên bản hoạt hình của setter:

[webView.scrollView setZoomScale:2.0 animated:YES]; 

hiển thị văn bản nội dung một cách chính xác, với zoom phù hợp và không bị mờ, nhưng Tôi không muốn để animate những thay đổi của zoom.

Trả lời

0

Nếu bạn không muốn xem hoạt ảnh, bạn có thể cung cấp số không cho thời gian hoạt ảnh. Mã dưới đây sẽ giúp bạn.

[UIView animateWithDuration:0.0 animations:^{ 
      webView.scrollView.zoomScale = 2.0;; 
     }completion:^(BOOL finished) { 
      //... 
     }]; 

lời khuyên khác là sử dụng CGAffineTransformMakeScale phương pháp để mở rộng các webview.

webView.transform = CGAffineTransformMakeScale(2, 2); 
0

Tôi không biết rằng việc thêm hoạt ảnh có thể biến mất hiệu ứng mờ ảo, vì vậy cảm ơn cho bài đăng của bạn, nó rất hữu ích.

Tôi tìm kiếm cùng một giải pháp mà bạn không may, câu trả lời của ondermerol không hoạt động đối với tôi.

tôi khắc phục điều đó bằng đại biểu của UIScrollView ->UIScrollViewDelegate


1) Thêm bất động sản BOOL trong lớp học của bạn

@property (nonatomic) BOOL webViewWasForceZooming; 

2) Trong viewDidLoad, kết nối đại biểu của bạn và đặt giá trị BOOL

self.webView.scrollView.delegate = self; 
self.webViewWasForceScrolling = NO; 

3) Đặt quy mô mới

self.webView.hidden = YES; 
webViewWasForceZooming = YES; 
[self.webView.scrollView setZoomScale:2.0 animated:YES]; 

4) Hiện lưng webview sau khi phóng to

#pragma mark - UIScrollViewDelegate 

    - (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale 
    { 
     if (webViewWasForceZooming) { 
      webViewWasForceZooming = NO; 
      self.webView.hidden = NO; 
     } 
    } 

Giải pháp của tôi không phải là hoàn hảo bởi vì trong suốt thời gian hoạt hình không phải là null nhưng để thay đổi thu phóng sau khi webview được tải, nó rất tuyệt.

Hy vọng nó sẽ giúp ai đó.

Các vấn đề liên quan