學習IOS開發UI篇--UITableView/數據模型嵌套/UITableViewCell/Cell的重用

1.UITableView數組

==================================================緩存

UITableView有兩種格式:group和plain對象

2.UITableView如何展現數據字符串

==================================================it

UITableView須要一個數據源(dataSource)來顯示數據
凡是遵照UITableViewDataSource協議的OC對象,均可以是UITableView的數據源

// 一共有多少組數據io

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;table

// 每一組有多少行數據原理

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;配置

// 每一行顯示什麼內容sso

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;

3.模型嵌套

==================================================

模型嵌套模型:數組中字典包含的數組裏還有字典

須要設置兩個模型在外層的模型中將內層的模型包裝

4.UITableViewCell

==================================================

介紹

UITableView的每一行都是一個UITableViewCell,經過dataSource的tableView:cellForRowAtIndexPath:方法來初始化每一行
UITableViewCell內部有個默認的子視圖:contentView,contentView是UITableViewCell所顯示內容的父視圖,可顯示一些輔助指示視圖
輔助指示視圖的做用是顯示一個表示動做的圖標,能夠經過設置UITableViewCell的accessoryType來顯示,默認是UITableViewCellAccessoryNone(不顯示輔助指示視圖)
 
 
5.Cell的重用原理
==================================================
      重用原理:當滾動列表時,部分UITableViewCell會移出窗口,UITableView會將窗口外的UITableViewCell放入一個對象池中,等待重用。當UITableView要求dataSource返回UITableViewCell時,dataSource會先查看這個對象池,若是池中有未使用的UITableViewCell,dataSource會用新的數據配置這個UITableViewCell,而後返回給UITableView,從新顯示到窗口中,從而避免建立新對象
區分對象池中UITableViewCell的對象
      UITableViewCell有個NSString *reuseIdentifier屬性,能夠在初始化UITableViewCell的時候傳入一個特定的字符串標識來設置reuseIdentifier(通常用UITableViewCell的類名)。當UITableView要求dataSource返回UITableViewCell時,先經過一個字符串標識到對象池中查找對應類型的UITableViewCell對象,若是有,就重用,若是沒有,就傳入這個字符串標識來初始化一個UITableViewCell對象

  代碼以下:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

    // 1.定義一個cell的標識

      static NSString *ID = @」njcell";

   

    // 2.從緩存池中取出cell

      UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];

   

    // 3.若是緩存池中沒有cell

      if (cell == nil) {

        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:ID];

    }

   

    // 4.設置cell的屬性...

   

      return cell;

相關文章
相關標籤/搜索