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

來源:互聯網
上載者:User

標籤:c   style   a   int   width   strong   

1.UITableView

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

UITableView有兩種格式:group和plain

2.UITableView如何展示資料

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

UITableView需要一個資料來源(dataSource)來顯示資料凡是遵守UITableViewDataSource協議的OC對象,都可以是UITableView的資料來源

// 一共有多少組資料

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

// 每一組有多少行資料

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

// 每一行顯示什麼內容

- (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;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.