ios学习笔记(6)UITableView初探

      UITableView 这个控件在应用程序的设计上算是比较常用的一个控件了,UITableView本身要比UIButton 、UILabel等控件要稍微复杂一点。但如果你学习过Android的ListView控件的话,那么掌握这个控件还是比较esay的

    废话不多说 介绍几种实现方式:

  一、在IB中拖控件的方式直接拖入

   1、定义一个自己的 myTableViewController : UIViewController <UITableViewDelegate,UITableViewDataSource>{ 

 

   }

@property (nonatomic,retain) NSArray *listData;

@end

  2、 打开.xib 关联上File‘Owne里面的 dataSource 、delegate  前面我们说过协议其实就是java里面的接口的功能,既然实现了UITableViewDelegate 、和UITableViewDataSource这两个伪接口,那么就我们就不用明显的在这里controller类里面声明UITableView的对象了,也不用担心我们拖进去的tableView控件不受myTableViewController管理了,这一切都交给了IB来协调Controller和View之间的关系了。并且我们要在myTableViewController.m 具体实现类里面去实现接口里面的几个方法,来保证UITableView数据装配以及UITableView能正常的显示。

3、装配数据一般在myTableViewController.m实现类的-(void) viewDidLoad{

                           // NSArray *array=[ ];

                             self.listData=array;

     }方法里面具体去实现。

4、设置UITableView 属性的几个相关的方法

     (1)、-(NSInteger) numberOfSectionsInTableView:(UITableView *) tableView{

           return 1;//默认返回1 用来设置UITableView的显示样式,分块的设置。

  }

     (2)、设置显示的行数 一般都是NSArray 的长度

   -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInsection:(NSInteger) section{

    return [self.listData count];

 }

      (3) 、设置具体个TableView每一行的显示样式,这个是可以自定义的,就像安卓的ListView中的每一行一样,每一行可以设置一个单独的布局文件来显示。这里苹果和安卓的思想是一样的,只是实现方式有所区别。其实苹果在这个地方要比安卓做的好,ios本身还提供了一些默认样式,如果我们选用默认的样式,那么我们只需要在这个地方进行数据关联就可以了。这个方法可以说是UITableView显示的核心,后面再细说一下,这也是UITableView的核心也是关键所在。

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

          NSUInteger row=[indexPath row];// 用这个row去NSArray中取出相应的值

}

   (4)、设置cell上的点击事件。

  -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *) indexPath{


}

以上说的4个方法都比较常用,除了第1个外,后面的3个几乎是必须的。 不管是数据的装配显示还是cell点击事件的触发,都是通过indexPath 来进行索引的,这个indexPath 的功能其实在Android 的ListView里面的也有相应的值来完成的。


二 、用代码的方式来实现UITableView,官方给出的demo例子程序都基本上都是这么干的。

  1、 定义自己的myTableViewController 这里要继承UITableViewController 说白了这个UITableViewController 实际上已经实现了上面提到的那个两个协议,所以这里直接继承该类就可以了。有点类似于Android的ListActivity类哦。。。


@interface  myTableViewController:UITableViewController{


}

   2. 具体实现类和上面的差不多,该有的还是要有的。




















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值