東川印記

一本東川,笑看爭龍斗虎;寰茫兦者,度橫佰昧人生。

xcode5使用UIWebView制作IOS内嵌网页

2014年8月26日星期二



搜索过程中发现objective-c不同的版本生成的代码都不一样,我用的XCode5.1

git clone 下hello world项目来。

程序目录

1,画视图
然后打开项目,拖三个控件过来。

三个控件分别是 TextField,Button,WebView;
2,声明输出口
右键按住控件拖进DCViewController.h
这个类折腾完成后代码是这样的
#import <UIKit/UIKit.h>

@interface DCViewController : UIViewController<UIWebViewDelegate>

@property (retain, nonatomic) IBOutlet UIWebView *webView;

@property (retain, nonatomic) IBOutlet UITextField *textField;

@property (retain, nonatomic) IBOutlet UIButton *button;

@property (strong,nonatomic) UIActivityIndicatorView *activityIndicatorView;

- (IBAction)buttonPressed:(id)sender;


-(void)loadWebPageWithString:(NSString *)urlString;

@end
3,方法
然后打开
DCViewController.m这个类,他会自动生成刚才那三个拖动的控件的代码

然后增加手动增加的_activityIndicatorView控件
然后加一堆的事件方法什么,加完之后是这样的。
#import "DCViewController.h"

@interface DCViewController ()

@end



@implementation DCViewController




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

    

    //自动缩放页面,以适应屏幕
    _webView.scalesPageToFit = YES;
    _webView.delegate = self;

    

    //    指定进度轮大小
    self.activityIndicatorView = [[UIActivityIndicatorView alloc] initWithFrame:CGRectMake(0, 0, 32, 32)];
    //    设置进度轮的中心也可以[self.activityIndicatorView setCenter:CGPointMake(30, 30)];
    [self.activityIndicatorView setCenter:self.view.center];
    //  设置activityIndicatorView风格
    [self.activityIndicatorView setActivityIndicatorViewStyle:UIActivityIndicatorViewStyleGray];
    [self.webView addSubview:self.activityIndicatorView];
    [self buttonPressed:nil];

    

}

-(void)loadWebPageWithString:(NSString *)urlString
{
    if (self.textField.text != nil) {
        //        追加一个字符串
        urlString = [@"http://" stringByAppendingFormat:urlString];
        NSURL *url = [NSURL URLWithString:urlString];
        //        NSURLRequest类方法用于获取URL
        NSURLRequest *request = [NSURLRequest requestWithURL:url];
        //        webView加载URL
        [_webView loadRequest:request];
    }

    

}





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


- (void)dealloc {
    [_webView release];
    [_textField release];
    [_button release];
    [_activityIndicatorView release];
    [super dealloc];
}

//按钮事件,点击按钮开始调用loadWebPageWithString方法
- (IBAction)buttonPressed:(id)sender {
    [_textField resignFirstResponder];
    [self loadWebPageWithString:_textField.text];
    //    点击完button后隐藏textFieldbutton
    //if (sender==_button) {
        //_textField.hidden = YES;
        //_button.hidden = YES;
    //}
}
//UIWebView委托方法,开始加载一个url时候调用此方法
-(void)webViewDidStartLoad:(UIWebView *)webView
{
    [self.activityIndicatorView startAnimating];
}
//UIWebView委托方法,url加载完成的时候调用此方法
-(void)webViewDidFinishLoad:(UIWebView *)webView
{
    [self.activityIndicatorView stopAnimating];
}
//加载url出错的时候调用此方法
-(void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
    // 判断button是否被触摸
    if (!self.button ) {

        

        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@""
                                                        message:[error localizedDescription]
                                                       delegate:nil
                                              cancelButtonTitle:@"OK"
                                              otherButtonTitles: nil];
        [alert show];
    }

    

}
@end
4,运行
201408261420

没有评论 :

发表评论