TableView初体验感悟:UITableView只是一个UI控件,就像Label和Button。别怕
初始化操作
-
新建一个CocoaTouch Class(SubClass of ViewController && 勾上Also create XIB file)
Of Course 如果已经有ViewController 就直接创建一个View
- 从Object Library中拉入UITableView,在对应的XXXViewController中实例化UITableView。
按住Ctrl点击拉入XXXViewController.h。填入基本信息,这里我将它命名为theTableView。
点击Connect后 xcode会自动写入property声明
@property (weak, nonatomic) IBOutlet UITableView *theTableView;
3. 设置DataSource和Delegate
选择TableView,CTRL+拖动连接到File‘s Owner。
![image](http://upload-images.jianshu.io/upload_images/669709-7d0455bb0fe4f0ee.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
选择DataSource&&Delegate
![image](http://upload-images.jianshu.io/upload_images/669709-7133b421d1f864b2.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
这里的操作相当于执行
```
self.theTableView.delegate = self;
self.theTbaleView.dataSource = self;
```
### 代码实现细节
1. 在xxxViewController.m中实现UITableViewControllerDelegate和UITableViewControllerDataSource协议,并且定义一个NSMutableArray实例变量instance variable,命名为_sources
@interface shareSourcesViewController ()<UITableViewDataSource,UITableViewDelegate>{
NSMutableArray *_sources;
}
在-viewDidLoad中初始化_infoArray数组内容
- (void)viewDidLoad {
[super viewDidLoad];
//设置theTableView的数据源
_sources = [[NSMutableArray alloc]initWithObjects:@"ZERO",@"one",@"two",@"three", nil];
}```
- 实现协议中代理方法
- 返回列表行数 这里我们返回_sources数组个数
<pre><code>-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
return [_sources count];
}</pre></code> - 要设置列表显示的内容
- 返回列表行数 这里我们返回_sources数组个数
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *simpleIdentify = @"SimpleIdentify";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleIdentify];
if (cell == NULL) {
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleIdentify];
}
cell.textLabel.text = [_sources objectAtIndex:indexPath.row];
return cell;
}
> 这里说一个技巧,不需要记住所有的名字,只需要记住它的返回值,其他的Xcode会帮助显示完全。你所需要的只是知道几个单词的意思,然后选择
end:那么就可以运行了:),效果图如下: