对UIWebView的学习

建工程,建一个类WebViewController 继承于UIViewController

WebViewController设置为根视图控制器
WebViewController遵守UIWebViewDelegate协议以便网页视图加载或停止加载,加载出错时或执行什么方法,发生什么事件
WebViewController.m中代码 
#import "WebViewController.h"

@interface WebViewController ()
{
    UIWebView *_webView;
    UITextField *_textField;
    UIActivityIndicatorView *_activityIndicatorView;
}
@end

@implementation WebViewController
-(void)dealloc
{
    [_webView release];
    [_textField release];
    [_activityIndicatorView release];
    [super dealloc];
}
//webView获取url地址
- (void)loadWebPageWithString:(NSString *)urlstring
{
    NSURL *url = [NSURL URLWithString:urlstring];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [_webView loadRequest:request];
}
//点击按钮,网页加载
- (void)buttonPress:(id)sender
{
    [_textField resignFirstResponder];
    [self loadWebPageWithString:_textField.text];
}
//代理中的方法
-(void)webViewDidStartLoad:(UIWebView *)webView
{
    //网页加载时  进度轮开始启动
    [_activityIndicatorView startAnimating];
}
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    //网页加载完成  进度轮停止
    [_activityIndicatorView stopAnimating];
}
//请求页面出现错误:
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"提示" message:@"网址输入错误或网络断开" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
    [alertView show];
    [alertView release];
}
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    _textField = [[UITextField alloc] initWithFrame:CGRectMake(10, 20, 270, 30)];
    _textField.borderStyle = UITextBorderStyleRoundedRect;
    //输入框默认显示http://www.baidu.com
    _textField.text = @"http://www.baidu.com";
    //点击button进入网页
    UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
    button.frame = CGRectMake(280, 20, 30, 30);
    [button setTitle:@"GO" forState:UIControlStateNormal];
    [button addTarget:self action:@selector(buttonPress:) forControlEvents:UIControlEventTouchUpInside];
    //网页显示
    _webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 50, 320, 425)];
    _webView.delegate = self;
    [self.view addSubview:_webView];
    [self.view addSubview:_textField];
    [self.view addSubview:button];
    //设置进度轮
    _activityIndicatorView = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0, 0, 32, 32)];
    //进度轮中心位置
    [_activityIndicatorView setCenter:self.view.center];
    //进度轮显示类型
    [_activityIndicatorView setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleWhite];
    [self.view addSubview:_activityIndicatorView];
    //没有点击按钮时,执行方法进入默认显示网页
    [self buttonPress:nil];
    
    // Do any additional setup after loading the view.
}

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

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/

@end

 实例代码:LiSWebView.zip

posted on 2014-07-27 15:50  狭义  阅读(204)  评论(0编辑  收藏  举报

导航