UIWebView控制項用法,uiwebview控制項
UIWebView是IOS SDK中一個常用的控制項,是內建的瀏覽器控制項,我們可以用它來瀏覽網頁,開啟文檔等到。本篇部落客要講解一下UIWebView控制項製作簡易的瀏覽器
如下:
在這裡首先我採用的是可視化編程,直接在視圖上拖放控制項.
UIWebView的loadRequest可以用來載入一個url地址,它需要一個NSURLRequest參數。我們定義一個方法用來載入url。在UIWebViewController.m中定義下面方法:
- (void)loadWebPageWithString:(NSString*)urlString
{
NSURL *url =[NSURL URLWithString:urlString];
NSURLRequest *request =[NSURLRequestrequestWithURL:url];
[_webViewloadRequest:request];
}
在介面上放置3個控制項,一個textfield、一個button、一個uiwebview,布局如下
在代碼中定義相關的控制項:webView用於展示網頁、textFiled用於地址欄、activityIndicatorView用於載入的動畫、buttonPress用於按鈕的點擊事件。
#import<UIKit/UIKit.h>
@interface MHTViewController :UIViewController<UIWebViewDelegate>
@property (nonatomic,retain)UIActivityIndicatorView *activityIndicatorView;
@property (weak,nonatomic) IBOutlet UITextField *textField;
@property (weak,nonatomic) IBOutlet UIWebView *webView;
- (IBAction)buttonPress:(UIButton *)sender;
- (void)loadWebPageWithString:(NSString*)urlString;
@end
設定UIWebView,初始化UIActivityIndicatorView:
- (void)viewDidLoad
{
[superviewDidLoad];
_webView.scalesPageToFit =YES;
_webView.delegate =self;
_activityIndicatorView = [[UIActivityIndicatorViewalloc]
initWithFrame : CGRectMake(0.0f,0.0f, 32.0f, 32.0f)] ;
[_activityIndicatorViewsetCenter: self.view.center] ;
[_activityIndicatorViewsetActivityIndicatorViewStyle: UIActivityIndicatorViewStyleWhite] ;
[self.viewaddSubview : _activityIndicatorView] ;
[selfbuttonPress:nil];
}
UIWebView主要有下面幾個委託方法:
1、
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;
當網頁視圖被指示載入內容而得到通知。
2、- (void)webViewDidStartLoad:(UIWebView *)webView;開始載入的時候執行該方法。
3、- (void)webViewDidFinishLoad:(UIWebView *)webView;載入完成的時候執行該方法。
4、- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error;載入出錯的時候執行該方法。
我們可以將activityIndicatorView放置到前面兩個委託方法中。
- (void)webViewDidStartLoad:(UIWebView *)webView
{
[_activityIndicatorViewstartAnimating] ;
}
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
[_activityIndicatorViewstopAnimating];
}
buttonPress方法,調用我們開始定義好的loadWebPageWithString方法就行了:
- (IBAction)buttonPress:(UIButton *)sender
{
[_textFieldresignFirstResponder];
[selfloadWebPageWithString:_textField.text];
}
當請求頁面出現錯誤的時候,我們給予提示:
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
UIAlertView *alterview = [[UIAlertViewalloc] initWithTitle:@""message:[error localizedDescription] delegate:nilcancelButtonTitle:nilotherButtonTitles:@"OK",nil];
[alterviewshow];
[alterviewrelease];
}
附:
:
//導覽按鈕
//返回上一個頁面
UIBarButtonItem * btn1 = [[UIBarButtonItemalloc]initWithImage:[UIImageimageNamed:@"btn_navigationBar_back1"]style:UIBarButtonItemStylePlain target:self action:@selector(back:)];
//暫停按鈕
UIBarButtonItem * btn2 = [[UIBarButtonItemalloc]initWithBarButtonSystemItem:UIBarButtonSystemItemStoptarget:selfaction:@selector(stop:)];
self.navigationItem.leftBarButtonItems =@[btn1,btn2];
//進入下一個頁面按鈕
UIBarButtonItem * btn3 = [[UIBarButtonItemalloc] initWithImage:[UIImageimageNamed:@"btn_navigationBar_back"]style:UIBarButtonItemStylePlain target:self action:@selector(go:)];
//重新整理按鈕
UIBarButtonItem * btn4 = [[UIBarButtonItemalloc]initWithBarButtonSystemItem:UIBarButtonSystemItemRefreshtarget:selfaction:@selector(refresh:)];
self.navigationItem.rightBarButtonItems =@[btn3, btn4];
[btn1release];
[btn2release];
[btn3release];
[btn4release];
//分別對方法進行實現:
[webView goBack];//返回
[webView goForward];//向前
[webView reload];//重新載入資料
[webView stopLoading];//停止載入資料
屬性:
self.opaque =NO; //設定是否不透明
self.scalesPageToFit =YES;//自動對頁面進行縮放以適應螢幕
iPhone開發培訓|iPad開發培訓班
具體課程安排(此課程可做內訓)
第一天 第一單元iOS開發語言之 iPhoneSDK本階段開始開始熟悉iPhone應用程式開發的工具:iPhoneSDK(xcode)。本階段會講解iPhoneSDK的基本用法,以及一些常用的捷徑如:.h.m檔案之間的快捷切換、appleAPI的快速定位查看,協助文檔的定位查看和建立工程需要注意的具體事宜。使學員達到對編程環境了如指掌,日後編程上手無障礙的目的。 第二單元iOS開發語言之 Objective-C語言強化本階段開始學習iOS的特有的程式設計語言Objective-C,該種語言屬於C/C++的一個變種,可以和C/C++混合使用。本階段講解Objective-C語言的物件導向編程,類的繼承,複合,多態,id,動態識別,Posing,Protocols,記憶體管理,Autorelease等主要內容。達到能夠熟練的編寫程式的能力。
第二天 第三單元iOS開發之 Foundation Kit編程強化主要學習iOS中核心類的編程使用。為後面UI,網路,多媒體等編程打好良好的基礎。同時Foundation Kit也是也是Mac OS X的核心基礎。主要內容包括:NSString, NSMutableString, NSArray, NSMutableArray, NSEnumerator, NSDictionary, NSMutableDictionary, NSNumber, NSValue, NSNull等各類蘋果iOS特性的類和方法。 第四單元Interface Builder使用和基本控制項使用(項目執行個體)使用Interface Builder建立UI項目工程,理解File Owner,First Responder,理解協議的概念。詳細分析IBOutlet和IBAction的作用和使用。理解各類控制項在IB上的屬性配置和事件處理。包括事件響應鏈,UIResponder類介紹。事件傳遞機制。UIEvent類, UITouch類,UIControl類,XCode中動態加入事件處理,在Interface Builder中圖形化加入事件處理。鍵盤事件的處理。
第三天 第五單元建立視圖控制器(項目執行個體)iOS中MVC模型介紹,UIViewController基類介紹。UIViewController和UIView關係。UITableView、UITableViewController使用,複合控制項UITabBarController建立多個Tab標籤的空間,UINavigationController導航控制項。翻轉控制器。 第六單元網路編程定位(項目執行個體)iOS網路編程,CFNetwork各種常用類介紹。NSURL,NSURLRequest,UIWebView, NSMutableURLRequest等類使用。CFHost類。使用UIWebView訪問網頁例子使用網路解析XML協議。使用網路POST, GET進行網頁表單協議進行互動。使用網路JSON協議處理網路互動。
第四天 第七單元多媒體,電話薄編程和GPS、MapView編程(項目執行個體)使用UIImage和UIImageView載入和繪製映像。使用相機介面拍取照片以及調用照片庫。使用MediaPlayer架構進行多媒體播放。使用CLLocation實現GPS定位。使用MKMapView調用googlemap。 第八單元2D/3D圖形處理,代碼代替xib實現控制項功能(項目執行個體)使用2D進行圖形繪......餘下全文>>
UIWebView中怎使用自訂字型?
應該是可以的,通過js來控制font,或者css 查看原帖>>