(转)UIWebView的基本用法

我们创建一个Window-based Application程序命名为:UIWebViewDemo

UIWebView的loadRequest可以用来加载一个url地址,它需要一个NSURLRequest参数。我们定义一个方法用来加载url。在UIWebViewDemoViewController中定义下面方法:

复制代码
- (void)loadWebPageWithString:(NSString*)urlString
{
NSURL
*url =[NSURL URLWithString:urlString];
NSLog(urlString);
NSURLRequest
*request =[NSURLRequest requestWithURL:url];
[webView loadRequest:request];
}
复制代码

在界面上放置3个控件,一个textfield、一个button、一个uiwebview,布局如下:

在代码中定义相关的控件:webView用于展示网页、textField用于地址栏、activityIndicatorView用于加载的动画、buttonPress用于按钮的点击事件。

@interface  UIWebViewDemoViewController :UIViewController<UIWebViewDelegate> {   
     IBOutlet  UIWebView *webView;
     IBOutlet  UITextField *textField;
     UIActivityIndicatorView *activityIndicatorView;
     
}
- ( IBAction )buttonPress:( id ) sender;
- ( void )loadWebPageWithString:( NSString *)urlString;
@end

使用IB关联他们。

设置UIWebView,初始化UIActivityIndicatorView:

复制代码
- (void)viewDidLoad
{
[super viewDidLoad];
webView.scalesPageToFit
=YES;
webView.
delegate=self;
activityIndicatorView
= [[UIActivityIndicatorView alloc]
initWithFrame : CGRectMake(
0.0f, 0.0f, 32.0f, 32.0f)] ;
[activityIndicatorView setCenter: self.view.center] ;
[activityIndicatorView setActivityIndicatorViewStyle: UIActivityIndicatorViewStyleWhite] ;
[self.view addSubview : activityIndicatorView] ;
[self buttonPress:nil];
// Do any additional setup after loading the view from its nib.
}
复制代码

UIWebView主要有下面几个委托方法:

1、- (void)webViewDidStartLoad:(UIWebView *)webView;开始加载的时候执行该方法。
2、- (void)webViewDidFinishLoad:(UIWebView *)webView;加载完成的时候执行该方法。
3、- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;加载出错的时候执行该方法。

我们可以将activityIndicatorView放置到前面两个委托方法中。

复制代码
- (void)webViewDidStartLoad:(UIWebView *)webView
{
[activityIndicatorView startAnimating] ;
}
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
[activityIndicatorView stopAnimating];
}
//备注 当活动器在状态栏时,退出当前视图时停止活动器,可以在 ViewWillDisapper:  中停止
复制代码

buttonPress方法很简单,调用我们开始定义好的loadWebPageWithString方法就行了:

- ( IBAction )buttonPress:( id ) sender
{
     [textField resignFirstResponder];
     [ self  loadWebPageWithString:textField.text];
     
}

当请求页面出现错误的时候,我们给予提示:

- ( void )webView:(UIWebView *)webView didFailLoadWithError:( NSError  *)error
{
     UIAlertView *alterview = [[UIAlertView alloc] initWithTitle:@ ""  message:[error localizedDescription]  delegate: nil  cancelButtonTitle: nil  otherButtonTitles:@ "OK" , nil ];
     [alterview show];
     [alterview release];
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值