2012-04-03 49 views
5

Tôi có một ứng dụng sử dụng UIWebView trên một trong các tab của nó. Mọi thứ đều hoạt động như mong muốn, nhưng tốc độ xem là rất chậm! Nó không quan trọng nếu tôi xây dựng nó trong giả lập hoặc nếu tôi xây dựng nó trong iPhone của tôi, đó là cùng một cuộn chậm. Làm cách nào để tăng tốc độ cuộn của chế độ xem? Tôi đã nhận thấy rằng nó sẽ ngừng di chuyển ngay sau khi ngón tay rời khỏi màn hình, thay vì tiếp tục cuộn và giảm tốc như trong safari, điều này có liên quan gì đến nó không?Làm cách nào để tăng tốc độ cuộn của UIWebView?

là tập tin .h của tôi:

// FirstViewController_SE.h 
// WebApp 
// 
// Created by Camilla Fröberg on 2012-03-29. 
// Copyright (c) 2012 SafeLine Sweden AB. All rights reserved. 
// 

#import <UIKit/UIKit.h> 

@interface FirstViewController_SE : UIViewController<UIWebViewDelegate> { 

IBOutlet UIWebView *webDisplay_SE; 
    UIBarButtonItem* mBack; 
    UINavigationItem* back; 

} 

@property(nonatomic,retain) UIWebView *webDisplay_SE; 
@property (nonatomic, retain) IBOutlet UIBarButtonItem* back; 

- (void)updateButtons; 


@end 

Và đây là tập tin .m tôi:

// 
// FirstViewController_SE.m 
// WebApp 
// 
// Created by Camilla Fröberg on 2012-03-29. 
// Copyright (c) 2012 SafeLine Sweden AB. All rights reserved. 
// 

#import "FirstViewController_SE.h" 

@interface FirstViewController_SE() 


@end 

@implementation FirstViewController_SE; 
@synthesize webDisplay_SE; 
@synthesize back = mBack; 

#pragma mark - View lifecycle 


// Implement viewDidLoad to do additional setup after loading the view, typically from a nib. 
- (void)viewDidLoad { 
    [super viewDidLoad]; 

    self.webDisplay_SE.delegate = self; 


    NSString *urlAddress = @"http://www.safeline.eu/mobile/se/product"; 

    //Create a URL object. 
    NSURL *url = [NSURL URLWithString:urlAddress]; 

    //URL Requst Object 
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url]; 

    //Load the request in the UIWebView. 
    [webDisplay_SE loadRequest:requestObj]; 

    [self updateButtons]; 
} 


- (void)viewDidUnload { 
    self.back = nil; 
    [super viewDidUnload]; 

    // Release any retained subviews of the main view. 
    // e.g. self.myOutlet = nil; 
} 


- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return YES; 
} 


- (void)updateButtons 
{ 
    self.back.enabled = self.webDisplay_SE.canGoBack; 
} 



- (void)didReceiveMemoryWarning { 
    // Releases the view if it doesn't have a superview. 
    [super didReceiveMemoryWarning]; 

    // Release any cached data, images, etc that aren't in use. 
} 


- (BOOL)webDisplay_SE:(UIWebView *)webDisplay_SE shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 
{ 
    return YES; 
} 



- (void)webViewDidStartLoad:(UIWebView *)webDisplay_SE 
{ 
    [self updateButtons]; 
} 

- (void)webViewDidFinishLoad:(UIWebView *)webDisplay_SE 
{ 
    [self updateButtons]; 
} 




@end 
+0

Tôi đã gửi báo cáo lỗi về vấn đề này. Số tham chiếu là 11322967. – MrO

+0

Hai năm trước, tôi đã đăng một cách giải quyết khác, nhưng hôm nay ai đó đã đề cập rằng nó sẽ dẫn đến việc từ chối. Bạn có thể xem phản hồi ban đầu của tôi tại: http://stackoverflow.com/a/2979294/359041 – MrO

Trả lời

7

Hãy thử điều này:

webView.scrollView.decelerationRate = UIScrollViewDecelerationRateNormal; 

Lưu ý: có một lỗi trong iOS 9 mà bạn có thể cần giải quyết https://stackoverflow.com/a/32843700/308315

+0

Hoạt động hoàn hảo như thuộc tính của một cá thể WKWebView trong iOS10.3 –

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