網(wǎng)頁視圖控件:UIWebView
功能:它是繼承于UIView的剥悟,是一個內(nèi)置的瀏覽器控件,以用來瀏覽從網(wǎng)絡下載下來的網(wǎng)頁或者本地上加載下來的文檔。
枚舉://網(wǎng)頁視圖導航類型typedefNS_ENUM(NSInteger, UIWebViewNavigationType) {
UIWebViewNavigationTypeLinkClicked, //用戶點擊了一個鏈接
UIWebViewNavigationTypeFormSubmitted, //用戶提交了一個表單
UIWebViewNavigationTypeBackForward, //用戶觸擊前進或返回按鈕
UIWebViewNavigationTypeReload, //用戶觸擊重新加載按鈕
UIWebViewNavigationTypeFormResubmitted, //用戶重復提交表單
UIWebViewNavigationTypeOther //發(fā)生其他行為類型
};
//網(wǎng)頁超過view大小時,超出部分翻頁布局模式
typedefNS_ENUM(NSInteger, UIWebPaginationMode) {
UIWebPaginationModeUnpaginated, //不使用翻頁
UIWebPaginationModeLeftToRight, //從左到右
UIWebPaginationModeTopToBottom, //從頂部到底部
UIWebPaginationModeBottomToTop, //從底部到頂部
UIWebPaginationModeRightToLeft //從右到左
};
//枚舉webView加載頁面具有CSS屬性時是使用頁的樣式還是以列的樣式
typedefNS_ENUM(NSInteger, UIWebPaginationBreakingMode) {
UIWebPaginationBreakingModePage, //頁模式
UIWebPaginationBreakingModeColumn//列模式
};
@interfaceUIWebView :UIView<NSCoding,UIScrollViewDelegate>
屬性:
//代理
@property(nonatomic,assign)id<UIWebViewDelegate> delegate;
//內(nèi)置滾動視圖
@property(nonatomic,readonly,retain)UIScrollView*scrollView榨了;
//是否可以返回上一級
@property(nonatomic,readonly,getter=canGoBack)BOOLcanGoBack;
//是否可以跳轉(zhuǎn)到下一級
@property(nonatomic,readonly,getter=canGoForward)BOOL canGoForward;
//是否加載
@property(nonatomic,readonly,getter=isLoading)BOOLloading;
//是否縮放頁面到合適大小
@property(nonatomic)BOOLscalesPageToFit;
//是否發(fā)現(xiàn)電話號碼
@propertynonatomic)BOOLdetectsPhoneNumbers;
//數(shù)據(jù)鏈接類型,如郵箱、電話贞言、地址等
@property(nonatomic)UIDataDetectorTypesdataDetectorTypes;
//是否允許內(nèi)置媒體播放
@property(nonatomic)BOOLallowsInlineMediaPlayback;
//媒體視頻是否自動播放
@property(nonatomic)BOOLmediaPlaybackRequiresUserAction;
//媒體音頻是否支持airplay
@property(nonatomic)BOOLmediaPlaybackAllowsAirPlay;
//是否將數(shù)據(jù)加載如內(nèi)存后渲染界面
@property(nonatomic)BOOLsuppressesIncrementalRendering;
//是否設置用戶交互
@property(nonatomic)BOOLkeyboardDisplayRequiresUserAction;
//超出視圖的網(wǎng)頁翻頁模式
@property(nonatomic)UIWebPaginationModepaginationMode;
//翻頁斷開模式
@property(nonatomic)UIWebPaginationBreakingModepaginationBreakingMode;
//網(wǎng)頁長度
@property(nonatomic)CGFloatpageLength;
//網(wǎng)頁分頁之間的間隔
@property(nonatomic)CGFloatgapBetweenPages ;
//網(wǎng)頁分頁數(shù)量
@property(nonatomic,readonly)NSUIntegerpageCount;
方法:
//通過遠程URL加載網(wǎng)頁(加載網(wǎng)頁數(shù)據(jù):第一種方式)
- (void)loadRequest:(NSURLRequest*)request;
//根據(jù)設置的URL路徑,加載html文件中引用的圖片等素材,html轉(zhuǎn)為字符串(加載網(wǎng)頁數(shù)據(jù):第二種方式) - (void)loadHTMLString:(NSString)string baseURL:(NSURL)baseURL;
//data為文件數(shù)據(jù),MIMEType為文件類型 ,textEncodingName為編碼類型,baseUrl為素材路徑(加載網(wǎng)頁數(shù)據(jù):第三種方式) - (void)loadData:(NSData)data MIMEType:(NSString)MIMEType textEncodingName:(NSString)textEncodingName baseURL:(NSURL)baseURL;
//重新加載 - (void)reload;
//停止加載 - (void)stopLoading;
//返回上一級 - (void)goBack;
//跳轉(zhuǎn)下一級 - (void)goForward;
//通過javascript操作網(wǎng)頁數(shù)據(jù) - (NSString)stringByEvaluatingJavaScriptFromString:(NSString)script;
協(xié)議:
@protocolUIWebViewDelegate <NSObject>
@optional
//準備加載內(nèi)容時調(diào)用的方法冠胯,通過返回值來進行是否加載的設置 - (BOOL)webView:(UIWebView)webView shouldStartLoadWithRequest:(NSURLRequest)request navigationType:(UIWebViewNavigationType)navigationType;
//開始加載時調(diào)用的方法 - (void)webViewDidStartLoad:(UIWebView*)webView;
//完成加載時調(diào)用的方法 - (void)webViewDidFinishLoad:(UIWebView*)webView;
//加載失敗時調(diào)用的方法 - (void)webView:(UIWebView)webView didFailLoadWithError:(NSError)error;
@end