iPhone應用中UITableView用法總結

來源:互聯網
上載者:User

iPhone應用UITableView用法總結是本文要介紹的內容,這一節主要講解對UITableView的理解,IPhone的應用程式是離不開UITableView應用程式的,因此理解Table控制項特別的重要。下面主要是對UITableView顯示資料的兩種方式進行講解。

顯示資料的內容主要是UITableView控制項,但是我們需要定義一個類為他載入資料,以及定義和使用者互動互動的回呼函數,這兩個方面是通過委託的形式實現的。根據MVC的設計形式,Apple將UITableView放置到一個UITableViewController類當中,使用UITableViewController類執行個體來控制UITableView的更個方面的屬性。我們需要建立這麼一個controller類型的類,這種類可以通過繼承成為UITableView的父類,也可以不繼承這個類,僅僅實現資料來源委託以及操作委託即可。

1、建立基於UITableViewController的子類。

 
  1. @interface RootViewController : UITableViewController {  
  2. NSArray *dataArray ;  
  3. }  
  4. @property(nonatomic,retain) NSArray *dataArray ; 

因為UITableViewController類已經包含了委託<UITableViewDelegate, UITableViewDataSource>,因此我們在這裡就不需要手動添加這些委託。我們可以通過查看原始碼來查看我們的假設:

 
  1. UIKIT_EXTERN_CLASS @interface UITableViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> 
  2. {  
  3.   @private  
  4.     UITableViewStyle _tableViewStyle;  
  5.     id               _keyboardSupport;  
  6.     struct {  
  7.         int clearsSelectionOnViewWillAppear:1;  
  8.     } _tableViewControllerFlags;  

通過上面的代碼我們可以看到UITableViewController已經繼承了<UITableViewDelegate, UITableViewDataSource>這兩個委託。

這樣以來,在實現檔案裡面我們僅僅需要實現這兩個委託裡面的必須實現的函數就可以了。

但是,到這裡我們還是不可以的,我們還沒有完完成任務。 我們建立的這個類還是需要一個能夠裝載這個類的執行個體的容器來著,這就好像,我們去買一瓶礦泉水,水是必須裝在一個瓶子容器)裡面才可以拿著喝得。 我們建立的這個類的執行個體,就好比水,我們還需要建立一個瓶子容器)來裝這些水 。這個容器可以是一個UIView執行個體,或者是一個UINavigationController執行個體,或者是一個Nib檔案都可以,這些準備完畢後就可以看到效果了。

2、現在我們來看第二種情況,建立普通控制類的執行個體。 

如果我們建立普通控制類的執行個體,比如如下面所示:

 
  1. @interface RootViewController:UITableViewController  
  2. <UITableViewDelegate,UITableViewDataSource> 
  3. {  
  4. NSArray *dataArray;  
  5. }  
  6. @property(nonatomic,retain) NSArray *dataArray ; 

這種情況下,我們需要手動的添加來繼承委託,實現資料來源的繼承以及資料操作的繼承。

然後剩下的情況就和其他上面的一樣來,實現委託中定義的必須要實現的類,載入資料,載入資料到容器中,然後顯示資料。

建立一個簡單的表格

參考代碼:

 
  1. //.h  
  2. @interface ViewBaseAppViewController : UIViewController   
  3. <UITableViewDelegate,UITableViewDataSource> 
  4. {  
  5. IBOutlet UITableView *m_tableView;  
  6. }  
  7. //.m  
  8. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {  
  9.     // Return the number of rows in the section.  
  10. return 10;  
  11. }  
  12.  
  13. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath  
  14. {    
  15.     static NSString *CellIdentifier = @"Cell";  
  16.  
  17.     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];  
  18.     if (cell == nil) {  
  19.         cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];  
  20.     }  
  21.     cell.textLabel.text =@"xingchen";  
  22.     return cell;  

小結:iPhone應用UITableView用法總結的內容介紹完了,希望本文對你有所協助。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.