热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

UITableView基本用法

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

表用于显示数据列表,数据列表中的每一项都由行表示。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那样的。

cell格式

(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; 

UITableView 表用于显示数据列表,数据列表中的每一项都由行表示。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那样的。

cell格式

(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; 

UITableView

UITableView2

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

 

 

 

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




推荐阅读
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文介绍了Java高并发程序设计中线程安全的概念与synchronized关键字的使用。通过一个计数器的例子,演示了多线程同时对变量进行累加操作时可能出现的问题。最终值会小于预期的原因是因为两个线程同时对变量进行写入时,其中一个线程的结果会覆盖另一个线程的结果。为了解决这个问题,可以使用synchronized关键字来保证线程安全。 ... [详细]
author-avatar
chenkun
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有