UIWebView和UICollectionViewController

UIWebView和UICollectionViewController的使用

UIWebView

    UIWebView是iOS內置的瀏覽器的控件, 能夠瀏覽網頁, 打開文檔等 .系統自帶的Safari瀏覽器就是經過UIWebView實現的, 可以加載html/htm, pdf, docx, txt等格式的文件.
html

    在iOS7以前, UILabel, UITextFiled 以及 UITextView 都在後臺以某種方式使用 WebKit來進行文本佈局和渲染.
web

    渲染 : 是CG的最後一道工序, 將所設計內容製做成最終效果圖或者動畫的過程 .
瀏覽器

UIWebView的使用

    1> 肯定要訪問的資源
緩存

NSURL *url = [NSURL URLWithString : @"http://www.baidu.com"];

    2> 創建網絡請求
網絡

NSURLRequest *request = [NSURLRequest requestWithURL :url];

    3> UIWebView加載網絡請求
佈局

[self.webView loadRequest : request];

UIWebView - 實現百度搜索

-(void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
    NSString *str = searchBar.text;
    
    // 1. 判斷是否以http開頭,若是沒有則用百度搜索
    if (![str hasPrefix:@"http://"]) {
        str = [NSString stringWithFormat:@"http://m.baidu.com/s?word=%@", str];
    }
    
    // 2. 在URL中,若是包含中文字符串,須要將字符串轉換爲帶百分號的格式
    NSURL *url = [NSURL URLWithString:[str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
}

UIWebView - 前進後退

#pragma mark - UIWebView代理方法
-(void)webViewDidFinishLoad:(UIWebView *)webView
{
    self.goBackButton.enabled = self.webView.canGoBack;
    self.goForwardButton.enabled = self.webView.canGoForward;
}

UIWebView優缺點:

優勢:動畫

    1> 使用簡單 ; NSURL肯定要訪問的網絡資源, NSURLRequest創建網絡請求;
atom

    2> 可以方便的展示豐富的頁面內容 ;
url

    3> 在開發中, 一般遇到不方便排版的內容, 會考慮選擇UIWebView .spa

缺點: 

    1> 以HTML爲基礎的頁面方式, 交互相對單一, 侷限性大 ;

    2> 編輯排版HTML頁面一樣須要花費人力.

UICollectionViewController的使用

    1> 註冊cell(告訴collectionView未來建立怎樣的cell) .

[self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"product"];

    2> 從緩存池中取出cell

-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
  UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"product" forIndexPath:indexPath];
    return cell;
}

    3> 重寫init方法, 建立佈局參數

-(id)init
{
    // 1.流水佈局
      UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init];
    // 2.每一個cell的尺寸
      layout.itemSize = CGSizeMake(100, 100);
    return [super initWithCollectionViewLayout:layout];
}

UICollectionViewFlowLayout

    UICollectionViewFlowLayout 稱爲 "流水佈局", 用來約束cell的顯示 ;

常見屬性:

// cell的尺寸 
@property (nonatomic) CGSize itemSize;
// cell之間的水平間距 
@property (nonatomic) CGFloat minimumInteritemSpacing;
// cell之間的垂直間距 
@property (nonatomic) CGFloat minimumLineSpacing;
// 四周的內邊距 
@property (nonatomic) UIEdgeInsets sectionInset;
相關文章
相關標籤/搜索