博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UITableView基本用法
阅读量:5979 次
发布时间:2019-06-20

本文共 5799 字,大约阅读时间需要 19 分钟。

表用于显示数据列表,数据列表中的每一项都由行表示。IOS没有行的限制,行数仅受可用才存储空间的限制,IOS的表只有一列。

     表视图是显示表数据的试图对象,是UITableView类的一个实例,表中的每个可建行都有UITableViewCell类实现。即一个UITableView实例由若干UITableViewCell组成。

   表视图不负责存储表中的所有数据,只存储足够绘制当前可见行的数据。每次只加载一屏幕的数据。表视图从遵循UITableViewDelegate协议的对象中获取配置数据,从遵循UITableViewDataSource协议的对象中获得行数据。

 

1- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;

         这个方法返回 tableview 有多少个section

 
  1. //返回有多少个Sections 
  2. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
  3.   return array.Count;  //默认值为1 
  4. }    

2- (NSInteger)tableView:(UITableView *)table numberOfRowsInSection:(NSInteger)section;

        这个方法返回对应的section有多少个元素,也就是多少行。

 
  1. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section     
  2. {    
  3.     return 10;  //默认也是1 ,分区中的行的个数 
  4. }   

 

(3)-(UITableViewCell *)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;

返回指定的row cell。这个地方是比较关键的地方,一般在这个地方来定制各种个性化的 cell元素。这里只是使用最简单最基本cell 类型。

其中有一个主标题cell.textLabel 还有一个副标题cell.detailTextLabel,  还有一个 image在最叫cell.imageView.  还可以设置右边的图标,通过cell.accessoryType 可以设置是饱满的向右的蓝色箭头,还是单薄的向右箭头,还是勾勾标记。

 
  1. //设置每行调用的cell 
  2. -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
  3. static NSString *SimpleTableIdentifier = @"SimpleTableIdentifier";//自定义的标识符 
  4.     
  5.     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier: 
  6.                              SimpleTableIdentifier]; 
  7.     if (cell == nil) {   
  8.         cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault 
  9.                                        reuseIdentifier: SimpleTableIdentifier] autorelease]; 
  10.  } 
  11.  cell.imageView.image=image;//未选cell时的图片 
  12.  cell.imageView.highlightedImage=highlightImage;//选中cell后的图片 
  13.  cell.text=@”测试文本”; 
  14.  return cell; 

 

表中的每一行都代表一个UITableViewCell。可以使用图像、文本还有辅助的图标等来自定义你自己的UITableViewCell。你可以自定义你自己的cell如下模型或者像appstore那样的。

4- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section

返回指定的section headertitle,如果这个sectionheader  有返回view,那么title就不起作用了。

 

 
  1. - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section   
  2. {   
  3.     if (tableView == tableView_)   
  4.     {   
  5.         if (section == 0)    
  6.         {   
  7.          return @"Girls";   
  8.         } 
  9.         else  
  10.         {   
  11.             return @"Boys";   
  12.         } 
  13.     }    
  14. }   

(5)
设置让
UITableView
行缩进


 
  1. // 把每一行的缩进级别设置为其行号,第一行为1,第二行为2 
  2. -(NSInteger)tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath{ 
  3.  NSUInteger row = [indexPath row]; 
  4.  return row; 
(6)
设置
cell
每行间隔的高度
 
  1. - (CGFloat)tableView:(UITableView *)tableView eightForRowAtIndexPath:(NSIndexPath *)indexPath{ 
  2.     return 40; 
(7)设置选中Cell的响应事件
 
  1. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 
  2.  [tableView deselectRowAtIndexPath:indexPath animated:YES];//选中后的反显颜色即刻消失 
该方法是选中之后执行。另一个方法willSelectRowAtIndexPath是在一行选择前调用,通常用来阻止某行的能否被选中
 
  1. -(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath 
  2.   if(row == 0) 
  3.      return nil;//设置第一个可见行不能被选中 
  4.      return indexPath; 

 表用于显示数据列表,数据列表中的每一项都由行表示。IOS没有行的限制,行数仅受可用才存储空间的限制,IOS的表只有一列。

     表视图是显示表数据的试图对象,是UITableView类的一个实例,表中的每个可建行都有UITableViewCell类实现。即一个UITableView实例由若干UITableViewCell组成。

   表视图不负责存储表中的所有数据,只存储足够绘制当前可见行的数据。每次只加载一屏幕的数据。表视图从遵循UITableViewDelegate协议的对象中获取配置数据,从遵循UITableViewDataSource协议的对象中获得行数据。

 

1- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;

         这个方法返回 tableview 有多少个section

 
  1. //返回有多少个Sections 
  2. - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
  3.   return array.Count;  //默认值为1 
  4. }    

2- (NSInteger)tableView:(UITableView *)table numberOfRowsInSection:(NSInteger)section;

        这个方法返回对应的section有多少个元素,也就是多少行。

 
  1. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section     
  2. {    
  3.     return 10;  //默认也是1 ,分区中的行的个数 
  4. }   

 

(3)-(UITableViewCell *)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;

返回指定的row cell。这个地方是比较关键的地方,一般在这个地方来定制各种个性化的 cell元素。这里只是使用最简单最基本cell 类型。

其中有一个主标题cell.textLabel 还有一个副标题cell.detailTextLabel,  还有一个 image在最叫cell.imageView.  还可以设置右边的图标,通过cell.accessoryType 可以设置是饱满的向右的蓝色箭头,还是单薄的向右箭头,还是勾勾标记。

 
  1. //设置每行调用的cell 
  2. -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
  3. static NSString *SimpleTableIdentifier = @"SimpleTableIdentifier";//自定义的标识符 
  4.     
  5.     UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier: 
  6.                              SimpleTableIdentifier]; 
  7.     if (cell == nil) {   
  8.         cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault 
  9.                                        reuseIdentifier: SimpleTableIdentifier] autorelease]; 
  10.  } 
  11.  cell.imageView.image=image;//未选cell时的图片 
  12.  cell.imageView.highlightedImage=highlightImage;//选中cell后的图片 
  13.  cell.text=@”测试文本”; 
  14.  return cell; 

 

表中的每一行都代表一个UITableViewCell。可以使用图像、文本还有辅助的图标等来自定义你自己的UITableViewCell。你可以自定义你自己的cell如下模型或者像appstore那样的。

4- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section

返回指定的section headertitle,如果这个sectionheader  有返回view,那么title就不起作用了。

 

 
  1. - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section   
  2. {   
  3.     if (tableView == tableView_)   
  4.     {   
  5.         if (section == 0)    
  6.         {   
  7.          return @"Girls";   
  8.         } 
  9.         else  
  10.         {   
  11.             return @"Boys";   
  12.         } 
  13.     }    
  14. }   

(5)
设置让
UITableView
行缩进


 
  1. // 把每一行的缩进级别设置为其行号,第一行为1,第二行为2 
  2. -(NSInteger)tableView:(UITableView *)tableView indentationLevelForRowAtIndexPath:(NSIndexPath *)indexPath{ 
  3.  NSUInteger row = [indexPath row]; 
  4.  return row; 
(6)
设置
cell
每行间隔的高度
 
  1. - (CGFloat)tableView:(UITableView *)tableView eightForRowAtIndexPath:(NSIndexPath *)indexPath{ 
  2.     return 40; 
(7)设置选中Cell的响应事件
 
  1. - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ 
  2.  [tableView deselectRowAtIndexPath:indexPath animated:YES];//选中后的反显颜色即刻消失 
该方法是选中之后执行。另一个方法willSelectRowAtIndexPath是在一行选择前调用,通常用来阻止某行的能否被选中
 
  1. -(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath 
  2.   if(row == 0) 
  3.      return nil;//设置第一个可见行不能被选中 
  4.      return indexPath; 

图片说明:此图片是从其他网站上戒掉的部分图。和上述代码运行效果不大相同。

 

 

 

 

  本文转自HDDevTeam 51CTO博客,原文链接:http://blog.51cto.com/hddev/917290,如需转载请自行联系原作者

你可能感兴趣的文章
jQuery中的.bind()、.live()和.delegate()之间区别分析
查看>>
107:JsonResponse用法详解
查看>>
Android源码学习之浅析SystemServer脉络
查看>>
supersock问题
查看>>
IIS设置允许下载.exe文件的解决方法(转自:http://hi.baidu.com/greenyork/blog/item/81da2a001d2175091d958319.html)...
查看>>
Java基础 - 数组
查看>>
js实现复制功能
查看>>
super 和this的用法
查看>>
语音03_TTS_C#示例代码
查看>>
python实例二
查看>>
找出数组中单独出现的3个数
查看>>
软考:招标投标法(2)
查看>>
UIWebView捕获内部web点击事件
查看>>
验证码的封装
查看>>
软件测试 -- 和用户共同测试(UAT测试)的注意点有哪些
查看>>
Docker的基本使用
查看>>
[NHibernate]ISessionFactory配置
查看>>
[C#]二维码(QR Code)生成与解析
查看>>
[Node.js]OS模块
查看>>
python全栈开发笔记----基本数据类型---列表方法
查看>>