【问题标题】:Add progress Dialog showing loading page on webview in iOS在 iOS 中的 webview 上添加显示加载页面的进度对话框
【发布时间】:2015-01-02 19:56:15
【问题描述】:

我是 iOS 开发的新手。有什么方法可以在 webview 上显示一个进度对话框,该对话框在页面加载时显示加载页面并在页面加载后关闭。

请推荐一些好的教程

提前致谢

这是我正在做的代码,但没有显示

@interface ViewController ()
@property (strong, nonatomic) UIActivityIndicatorView*loadingIndicator;
@end

@implementation ViewController
@synthesize myWebview;

- (void)viewDidLoad {
self.myWebview.delegate = (id<UIWebViewDelegate>)[self class];
UIActivityIndicatorView *activityIndicator = [[UIActivityIndicatorView alloc]initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];          
activityIndicator.center = self.myWebview.center;
[activityIndicator setHidden:YES];
self.loadingIndicator=activityIndicator;
[self.view addSubview:self.loadingIndicator];
NSURL *url=[NSURL URLWithString:@"http://getaservice.pk/joomla"];
self.myWebview.delegate = (id<UIWebViewDelegate>)[self class];
NSURLRequest *request=[NSURLRequest requestWithURL:url];
[myWebview loadRequest:request];
[super viewDidLoad];


}
// Do any additional setup after loading the view, typically from a nib.

     -(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request     navigationType:(UIWebViewNavigationType)navigationType
{
[self.loadingIndicator startAnimating] ;
[self.loadingIndicator setHidden:NO];
return YES;
}

-(void)webViewDidFinishLoad:(UIWebView *)webView
{
[self.loadingIndicator setHidden:YES];
[self.loadingIndicator stopAnimating] ;
}

-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
[self.loadingIndicator setHidden:YES];
[self.loadingIndicator stopAnimating] ;
 }

 - (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
 }

 - (IBAction)button:(id)sender {

}
@end

【问题讨论】:

    标签: ios iphone webview


    【解决方案1】:

    在您的视图中获取一个活动指示器并将其放置在屏幕或 webview 的中心。默认隐藏活动指示器。

    现在,当您加载网页时,然后显示活动指示器,直到您的网页完全加载。

    -(void)webViewDidFinishLoad:(UIWebView *)webView1{
    if (webView1.isLoading){
        return;
    }
    [self.activityView stopAnimating];
    self.activityView.hidden = TRUE;
    

    }

    【讨论】:

    • 有没有添加webView.delegate = self;在你的代码中?或为其委托制作 webview 选择器。您必须在 .h 文件中添加
    【解决方案2】:
    @interface
    // declare a loading indicator
    @property (strong, nonatomic) UIActivityIndicatorView*loadingIndicator;
    
    - (void)viewDidLoad {
            self.webview.delegate = (id<UIWebViewDelegate>)[self class];
            UIActivityIndicatorView *activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
            activityIndicator.center = self.webview.center;
            [activityIndicator setHidden:YES];
            self.loadingIndicator=activityIndicator;
            [self.view addSubview:self.loadingIndicator];
            [super viewDidLoad];
    }
    
    - (void)webViewDidStartLoad:(UIWebView *)webView {
        [self.loadingIndicator startAnimating] ;
        [self.loadingIndicator setHidden:NO];
    }
    
    -(void)webViewDidFinishLoad:(UIWebView *)webView
    {
        [self.loadingIndicator setHidden:YES];
        [self.loadingIndicator stopAnimating] ;
    }
    
    -(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
    {
         [self.loadingIndicator setHidden:YES];
         [self.loadingIndicator stopAnimating] ;
    }
    

    我想你正在寻找这个,否则很抱歉..

    【讨论】:

    • 使用未声明的标识符“ActivityIndi​​cator”
    • 我已经加载了页面,但加载时仍然没有显示任何内容
    • 通过替换此代码修改颜色 UIActivityIndi​​catorView *activityIndi​​cator = [[UIActivityIndi​​catorView alloc] initWithActivityIndi​​catorStyle:UIActivityIndi​​catorViewStyleGray];
    • 我认为您对 iOS 很陌生。尝试在情节提要、视图控制器中的 webview 上方添加指示器。设置所需的颜色。
    • 请看我上面的代码,这就是我正在做的,但没有显示对话框
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-22
    • 2013-11-24
    • 1970-01-01
    • 2011-02-05
    相关资源
    最近更新 更多