归纳笔记09:UITableView

UITableView支持的属性

UITableView继承了UIScrollView,它具有UIScrollView的功能,这个UIScrollView中主要封装了UITableViewCell单元格控件,因此,UITableView默认可以对单元格进行滚动。默认状态下,所有的UITableViewController实例被自动设为UIScrollView委托。

我们即可在IB中将UITableView拖入界面设计文件中添加该控件,也可通过代码创建,两种方式本质相同。支持属性大致如下:

(1)   Style:该属性指定该表格的风格,它对应UITableView对象的style属性,该属性支持如下两个属性值:

1)           Plain:指定该表格使用最普通的风格。

2)           Grouped:指定该表格使用分组风格。

(2)   Separator :该属性指定表格行之间分隔条的样式,可配置两个属性:

1)           分隔条样式。

2)           分隔条颜色

(3)   Selector:该属性用于控制该表格的选择风格。

(4)   Editing :该属性用于控制当表格处于编辑状态是否允许选择。


简单表格

掌握上面理论后,简单表格开发步骤如下:

(1)              在界面布局中添加一个UITableView控件;或通过代码创建一个UITableView对象,并将该对象添加到应用界面中。

(2)              为UITableView设置dataSource属性,该属性值必须是一个实现UITableViewDataSource协议的对象。

(3)              让指定类实现UITableViewDataSource协议,并实现协议中两个必须实现的方法。

默认的UITableViewCell包含三个可配置的属性。

(1)    textLabel:该属性是一个UILabel控件,代表该UITableViewCell显示的标题。

(2)    detailTextLabel:该属性是一个UILabel控件,代表该UITableViewCell显示的详细内容。

(3)    image:这是一个UIImage对象,代表UITableViewCell左边的图标。

获取UITableView控件之后,接下来可通过如下方法访问表格控件的表格行和分区:

(1)       -cellForRowAtIndexPath:返回该表格中NSIndexPath对应的表格行。

(2)       -indexPathForCell:获取该表格中指定行对应的NSIndexPath。

(3)       -indexPathForRowAtPoint:返回表格中指定点所在的NSIndexPath。

(4)       -indexPathsForRowsInRect:返回表格中指定区域内所有NSIndePath组成的数组。

(5)       -visibleCells:返回表格中所有可见区域内的表格行组成的数组。

(6)       -indexPathForVisibleRows:返回该表格中所有课件区域内的表格行对应的NSIndexPath组成的数组。

也可以通过如下方法来控制表格控件的滚动:

(1)                           -scrollToRowAtIndexPath:atScrollPosition:animation:控制该表格滚动指定NSIndexPath对应的表格行的顶端、中间或下方。

(2)                           -scrollToNearestSelectedRowAtScrollPosition:animation:控制该表格滚动到选中表格行的顶端、中间或下方。


处理单元格的选中

当表格控件允许选中时,默认情况下,当用户单击表格的某个表格行时,系统就会选中对应的表格行。UITableView提供了如下属性来配置表格的选中状态。

(1)   allowsSelection:该属性控制该表格是否允许被选中。

(2)   allowsMultipleSection:该属性控制该表格是否允许多选。

(3)   allowsSelectionDuringEditing:该属性控制该表格处理编辑状态时是否被选中。

(4)   allowsMultipleSelectionDuringEditing:该属性控制表格处理编辑状态时是否允许多选。

除此之外,也可通过UITableView提供如下方法来操作表格中被选中的行:

(1)   -indexPathForSelectionRow:获取选中表格行对应的NSIndexPath。

(2)   -indexPathForSelectionRows:获取所有被选中表格行对应的NSIndexPath组成的数组。

(3)   -selectRowAtIndexPath:animation:scrollPosition:控制该表格选中指定NSIndexPath对应的表格行,最后一个参数控制是否滚动到被选中行的顶端、中间和底部。

(4)   -deselectRowAtIndexPath:animation:控制取消选中该表格中指定NSIndexPath对应的表格行。

如果程序需要响应表格行的选中事件,这时候需要借助UITableView的委托对象,委托对象必须实现UITableViewDelegate对象——当UITableView表格行发生选中相关事件时,都会激发该委托对象的响应方法:

(1)   -tableView:willSelectRowAtIndexPath:当用户将要选中表格中的某行时激发该方法。

(2)   -tableView:didSelectRowAtIndexPath:当用户完成选中表格中的某行时激发该方法。

(3)   -tableView:willDeselectRowAtIndexPath:当用户将要取消表格中的某行时激发该方法。

(4)   -tableView:didDeselectRowAtIndexPath:当用户选中表格中的某行时激发该方法。


定制表格行

如果只是使用系统提供的UITableViewCell,UITableView控件的表格行只支持有限的样式,而且每个表格行只包含textLabel、detailTextLabel、UIImageView这三个控件。

为了自由定制控件的表格行,可通过如下方式完成:

(1)   继承UITableView定制表格行。

(2)   使用动态单元格定制表格行,即直接在IB上设置。

(3)   利用xib文件定义表格行。



编辑表格

UITableView生成的表格控件功能十分灵活,不仅可作为数据显示控件,还支持对表格行进行移动、删除和插入等操作。

UITableView提供了editing属性来判断该表格控件是否处于编辑状态,如果是返回YES,反之则NO。为了切换表格控件的编辑状态,UITableView提供了setEditing:animation:方法,如果第一个参数为YES,则为编辑状态。

除此之外,控件还具有插入、删除、移动表格行:

(1)   -beginUpdates:对表格执行多个连续的插入、删除、移动操作前,先调用该方法开始更新。

(2)   -endUpdates:当对表格控件执行多个连续的插入、删除移动操作后的,调用该方法提交并更新。

(3)   -insertRowsAtIndexPaths:withRowAnimation:在一个或者多个NSIndexPath处插入表格行。

(4)   -deleteRowsAtIndexPaths:withRowAnimation:删除一个或多个NSIndexPath处的表格行。

(5)   -moveRowsAtIndexPath:将指定NSIndexPath处的表格行移动到另一个NSIndexPath处。

(6)   -insertSections:withRowAnimation:在指定NSIndexSet所包含的一个或多个分区号对应的位置插入分区。

(7)   -deleteSections:withRowAnimation:删除指定NSIndexSet所包含的一个或多个分区号对应的分区。

(8)   -moveSection:toSection:将指定分区移动到另一个位置。

为了动态编辑表格,必须实现UITableView对应的dataSource对象中的如下方法:

(1)   -tableView:willBeginEditingRowAtIndexPath:开始编辑某个表格行时激发该委托对象的该方法。

(2)   -tableView:didEndEditingRowAtIndexPat:当编辑完某个表格行时激发该委托对象的该方法。

(3)   -tableView:editingStyleForRowAtIndexPath:该方法的返回值决定了该表格行的编辑状态。

 



多分区表格以及分区索引

前面介绍的表格只有一个分区,如果希望UITableViews生成的表格控件包含更多的分区,则需要dataSource对象实现更多的方法:

(1)   -numberOfSectionsInTableView:该方法的返回值决定该表格包含多少个分区。

(2)   -sectionIndexFitlesForTableView:该方法的返回值用于在表格右边建立一列浮动的索引。

(3)   -tableView:titleForHeaderInsection:该方法的返回值决定指定分区的页眉。

(4)   -tabelView:titleForFooterInsection:该方法的返回值决定指定分区的页脚。

 


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值