ios学习笔记(6)UITableView初探

来源:互联网 发布:ui和淘宝美工的区别 编辑:程序博客网 时间:2024/05/22 15:30

      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. 具体实现类和上面的差不多,该有的还是要有的。




















原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 二个月的宝宝不喝夜奶怎么办 婴儿不喝奶粉怎么办 小孩整天不吃饭怎么办 婴儿不吃不喝怎么办 断奶后不吃奶瓶怎么办 小孩早上不吃饭怎么办 新生儿不认乳头怎么办 宝宝不吸奶嘴怎么办 孩子不会吸奶瓶怎么办 宝宝突然不吃奶瓶怎么办 换了奶瓶不喝奶怎么办 新生儿不喝奶粉怎么办 7个月小婴儿磨牙怎么办 宝宝出生四天不喝母乳怎么办 我的奶水不足怎么办 乳牙长得不整齐怎么办 新生儿只吃奶粉怎么办 小孩不肯吸母乳怎么办 三个月宝宝不吃奶粉怎么办 宝宝不爱喝水怎么办 崔玉涛 小孩身体铅过高怎么办 疫苗引起的发烧怎么办 婴儿不吃米糊怎么办 宝宝米糊不吃怎么办 换奶瓶宝宝不吃怎么办 小孩不会吃奶瓶怎么办 百天不吃奶瓶怎么办 1岁宝宝积食怎么办 宝宝退烧后流汗怎么办 宝宝高烧后出汗怎么办 发烧出汗不退烧怎么办 婴儿发烧不出汗怎么办 婴幼儿发烧不退怎么办 宝宝突然不吃饭怎么办 宝宝吃饭到处跑怎么办 宝宝不吃奶瓶怎么办崔玉涛 八个月母乳不足怎么办 八个月宝宝厌食怎么办 婴儿辅食便秘怎么办 婴儿被食物卡住怎么办 婴儿食物卡喉咙怎么办