免費開源的iOS開發學習平臺

UITableView詳解:4-表視圖創建示例

通過對UITableView對象的了解,我們可以得知,UITableView是由一個個的UITableViewCell單元格構成的,并且每個單元格中顯示的數據都是通過其數據源對象來獲取的。

本節的示例代碼,創建了一個UITableView對象,并且添加到控制器View上。UITableView上的每個單元格數據,都是通過UITableView的數據源對象--控制器來獲取的。

  • 創建一個Single View Application

  • 在ViewController.m文件中,設置該控制器類遵守UITableViewDataSource協議,并且添加一個UITableView類型的屬性

@interface ViewController ()<UITableViewDelegate,UITableViewDataSource>
@property (nonatomic,strong) UITableView * tableView;
@end
  • 對tableView屬性進行懶加載,設置表視圖的屬性
-(UITableView *)tableView{
    if (_tableView == nil) {
        _tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain];
        _tableView.dataSource = self; //設置數據源對象
    }
    return _tableView;
}
  • 把表視圖添加到控制器view上
- (void)viewDidLoad {
    [super viewDidLoad];
    [self.view addSubview:self.tableView];
}
  • 實現UITableViewDataSource協議中的tableView: numberOfRowsInSection:方法,返回表視圖中包含的單元格個數,這里我們選擇添加20個單元格
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return 20;
}
  • 實現tableView: cellForRowAtIndexPath:方法,創建每一個單元格,該方法會被反復調用20次,即創建20個單元格
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    //初始化cell
    static NSString *cellID = @"cell";   
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];  
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID];
    }   
    //獲取隨機數據
    NSString *text = [NSString stringWithFormat:@"%d", arc4random_uniform(1000000)];   
    //設值
    cell.textLabel.text = text;    
    return cell;
}

運行后,我們可以看到在屏幕上出現了UITableView視圖,并且可以向上滑動。在該案例中,我們并沒有對單元格的樣式進行復雜的定制,只是帶領大家學習掌握如何創建表視圖,這是我們學習表視圖的第一步。

示例代碼

https://github.com/99ios/8.2.4


日韩av 中文字幕 1_亚洲第一区在线_亚洲V日韩V精品v无码专区_色鬼久久亚洲AV综合