1.網頁控件 WebViewhtml
1.1 UIKit中的UIWebView類可以味用戶提供顯示多行文本的視圖,可使用Web等技術進行顯示HTML、解析CSS和執行JavaScript等操做。UIWebView的內核是開源的WebKit瀏覽器引擎。web
WebView控件能夠加載本地HTML代碼或者網絡資源。瀏覽器
本地資源的加載採用同步方式,數據能夠來源於本地文件或者是硬編碼的HTML字符串。網絡
loadHTMLString:baseURL:設定主頁文件的基本路徑,經過一個HTML字符串加載主頁數據。框架
loadData:MIMEType:textEncodingName:basseURL:指定MIME類型,編碼集和NSData對象加載一個主頁數據,並設定主頁文件基本路徑。異步
使用者兩個方法時,須要注意字符集問題,而採用什麼樣的字符集取決於HTML文件。函數
加載網絡資源時,採用一步加載方式,使用的方法是loadRequest:(NSURLRequest *)request,該方法要求提供一個NSURLRequest對象,該對象在構建的適合必須嚴格遵照某種協議,例如:工具
http://www.sina.com.cn,HTTP協議;編碼
file://localhost/Users/tonyguan/../index.html,文件傳輸協議;指針
其中http://和file://是協議名,不能省略。
因爲採用異步請求加載WebView,因此還要實現相應地UIWebViewDelegate委託協議,經過實現UIWebViewDelegate協議響應WebView在加載的不一樣階段的事件。
這兩個方法用於加載本地資源文件index.html,並將其顯示在WebView上,在testLoadHTMLString: 方法中,經過NSString的initWithContentOfFile:encoding:error:方法將index.html文件的內容讀取到NSString對象中。在self.webView loadHTMLString:html baseURL:bundleUrl語句中,baseURL參數用於設定主頁文件的基本路徑,即index.html所在的資源目錄,這個能夠用 NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]語句來獲取。
document.body.innerHTML得到頁面中的HTML代碼的JavaScript語句
UIWebViewDelegate委託協議定義的方法:
1.2 使用WebView構建Hybird應用
Hybird應用同時融合了本地技術和Web技術,它可以同時發揮本地技術和Web技術各自的優點。純Web技術的應用雖然禁止在App Store中發佈,但Hybrid確能夠得到發佈許可。有一個Hybird框架--PhoneGap(http://phonegap.com/)用於移動平臺的開發,PhoneGap如今被Adobe收購了,提供13個調用本地的API,採用的是JavaScript、CSS3和HTML5等Web技術。PhoneGap的核心原理是:本地代碼調用JavaScript;JavaScript調用本地代碼。WebView是實現Hybird應用的核心,也是實現本地技術和Web技術融合的核心。
在Xcode工程中,文件夾和組的顏色是不一樣的,文件夾是灰色的,組是黃色的;在使用過程當中,文件夾和組也是有本質區別的,若是將文件放入到文件夾中,則反問文件的路徑是「文件夾/index.html",而若是將文件放入到組中,訪問的路徑是」index.html"
2 屏幕滾動控件 ScrollView
scrollView在UIKit中是UIScrollView類,是容器類型的視圖,它有兩個子類:UITextView和UITableView
2.1 scrollView屬性的設置:contentSize,contentInset和contentOffset。
contentSize:ScrollView內容視圖的大小,CGSize結構體類型,包含width和height兩成員
contentInset:用於在ScrollView中的內容視圖周圍添加邊框,這每每爲了留出空白以放置工具欄、標籤欄或導航欄。contentInset屬性有4個份量,分別是top,buttom,left,right,分別表明頂邊距離,底邊距離,左邊距離和右邊距離
contentOffset:內容視圖座標原點與scrollView座標原點的偏移量,返回CGPoint結構體類型,包含x和y兩個成員
3 鍵盤與其餘控件的協同
顯示鍵盤時會遮擋一些控件,須要在鍵盤打開先後,擺放好ScrollView和控件的位置
4 等待相關的控件和進度條
在請求完成前,常常會用到活動指示器ActivityIndicatorView和進度條ProgressView,其中活動指示器能夠消除用戶的心理等待時間,而進度條能夠指示請求的進度
4.1 活動指示器ActivityIndicateView
使用一個按鈕,經過點擊實現活動指示器的旋轉和中止
4.2 進度條ProgressView
引入定時器(NSTimer),方便任務進度的顯示
NSTimer的類方法+(NSTimer *)scheduledTimerWithInterval:(NSTimeInterval)seconds target:(id)target
selector:(SEL)aSelector userInfo:(id)userInfo repeats:(BOOL)repeats,
target用於指定發送消息給哪一個對象,aSelector指定要調用的方法名,至關於一個函數指針,userInfo能夠給消息發送參數,repeats表示重複與否