当前位置:首页 > 移动端开发 > 正文内容

iOS开发- tableView的协议

邻居的猫1个月前 (12-09)移动端开发615

在运用 UITableView 时,有必要完成的协议首要包含以下几个

1. UITableViewDataSource 协议

这是最重要的协议,用于供给数据给 UITableView。没有这个协议,UITableView 是无法显现任何内容的。

有必要完成的办法:

  • tableView:numberOfRowsInSection::回来给定 section 中的行数。

    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
    
  • tableView:cellForRowAtIndexPath::回来对应 indexPath 的单元格(UITableViewCell)。

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

这两个办法是 UITableViewDataSource 协议中最中心的有必要完成的办法。

可选的办法:

  • tableView:titleForHeaderInSection::回来指定 section 的标题(用于表头)。

    - (nullable NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section;
    
  • tableView:titleForFooterInSection::回来指定 section 的标题(用于表尾)。

    - (nullable NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section;
    
  • tableView:canEditRowAtIndexPath::指示是否答应修改某一行。

    - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath;
    
  • tableView:canMoveRowAtIndexPath::指示是否答应移动某一行。

    - (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath;
    

2. UITableViewDelegate 协议

UITableViewDelegate 协议用于处理表视图的交互,例如行挑选、行删去、行移动等。这个协议的完成一般是为了增强用户体会。

有必要完成的办法:

实际上,UITableViewDelegate 中并没有严厉“有必要”完成的办法,可是一般会完成以下几种常见办法:

  • tableView:didSelectRowAtIndexPath::当用户点击某一行时调用。

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

可选的办法:

  • tableView:heightForRowAtIndexPath::设置行高。

    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;
    
  • tableView:heightForHeaderInSection::设置表头的高度。

    - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section;
    
  • tableView:heightForFooterInSection::设置表尾的高度。

    - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section;
    
  • tableView:viewForHeaderInSection::自定义表头视图。

    - (nullable UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section;
    
  • tableView:viewForFooterInSection::自定义表尾视图。

    - (nullable UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section;
    
  • tableView:didDeselectRowAtIndexPath::当用户撤销挑选某一行时调用。

    - (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath;
    

3. UITableViewDragDelegateUITableViewDropDelegate(iOS 11 及以上)

这些协议首要用于拖放操作(drag and drop)功用,适用于需求支撑拖动排序或拖拽增加数据的表格。

  • UITableViewDragDelegate:用于处理行拖拽操作。
  • UITableViewDropDelegate:用于处理行的接纳(drop)操作。

这些协议办法在运用拖放功用时十分有用,但它们是可选的,只在支撑拖放操作时才需求完成。

4. UITableViewDataSourcePrefetching(iOS 10 及以上)

假如表格需求进行数据预加载,UITableViewDataSourcePrefetching 协议十分有用。这个协议答应提早加载行将显现的行的数据(例如,提早加载图片或长途数据)。

  • tableView:prefetchRowsAtIndexPaths::预加载数据的办法。

    - (void)tableView:(UITableView *)tableView prefetchRowsAtIndexPaths:(NSArray<NSIndexPath *> *)indexPaths;
    
  • tableView:cancelPrefetchingForRowsAtIndexPaths::撤销预加载的数据的办法。

    - (void)tableView:(UITableView *)tableView cancelPrefetchingForRowsAtIndexPaths:(NSArray<NSIndexPath *> *)indexPaths;
    

总结

  • 必需的协议

    • UITableViewDataSource:首要担任供给数据。
    • UITableViewDelegate:首要担任处理交互(例如行的挑选、修改、行高级)。
  • 可选的协议

    • UITableViewDragDelegateUITableViewDropDelegate(用于拖放操作)。
    • UITableViewDataSourcePrefetching(用于数据预加载)。

大部分时分,只需求完成 UITableViewDataSourceUITableViewDelegate 中的几个要害办法。假如还需求自定义其他功用(例如拖放、数据预加载),能够依据需求再完成其他协议的办法。

而运用UIcollectionView也是相同的。

扫描二维码推送至手机访问。

版权声明:本文由51Blog发布,如需转载请注明出处。

本文链接:https://www.51blog.vip/?id=472

分享给朋友:

“iOS开发- tableView的协议” 的相关文章

NutUI-React 京东移动端组件库 2月份上新!欢迎运用!

NutUI-React 京东移动端组件库 2月份上新!欢迎运用!

作者:京东零售 佟恩 NutUI 是一款京东风格的移动端组件库。NutUI 现在支撑 Vue 和 React技能栈,支撑Taro多端适配。 本次,是2月的一个示例输出,期望对你有协助! 2月,咱们对组件交互、issue修正、添加示例上做了急行军,共兼并70+PR,修正近40个issue。这儿咱们...

华为系统鸿蒙,创新与融合的未来操作系统

华为系统鸿蒙,创新与融合的未来操作系统

华为鸿蒙系统(HarmonyOS)是华为公司于2019年8月9日在华为开发者大会(HDC.2019)上正式发布的一款面向全场n 2. 核心特点鸿蒙系统具有以下核心特点: 分布式架构:鸿蒙系统采用分布式架构,将各个终端设备视为一个整体,实现了设备之间的无缝连接和协同工作。这种架构使得不同设备可以协同...

阿里巴巴android开发手册,深入解读阿里巴巴Android开发手册——提升开发效率与代码质量

手册分为九大部分,包括:1. Java语言规范(遵循《阿里巴巴Java开发手册》)2. Android资源文件命名与使用3. Android基本组件4. UI与布局5. 进程、线程与消息通信6. 文件与数据库7. Bitmap、Drawable与动画8. 安全9. 其他规约依次分为强制、推荐、参考三...

移动端开发工程师,技术革新下的职业机遇

移动端开发工程师,技术革新下的职业机遇

移动端开发工程师主要负责设计和开发移动设备(如智能手机和平板电脑)上的应用程序。他们的工作通常涉及以下方面:1. 需求分析:与产品经理、设计师和其他利益相关者合作,了解应用程序的需求和目标。2. 技术选型:根据项目需求,选择合适的开发工具、框架和编程语言。3. 编码实现:使用所选的技术栈,编写高效、...

鸿蒙战神,穿越时空的传奇之旅

鸿蒙战神,穿越时空的传奇之旅

您好,请问您提到的“鸿蒙战神”是指小说还是其他内容呢?根据您的描述,我找到了一些相关信息:1. 小说《鸿蒙战神》:这是由落世凡创作的一部异世争霸类小说,目前在小说阅读网连载。故事讲述了一个得天独厚的少年,他的命运被鸿蒙第一人掌握,而他的前世是五行圣星属中的帝王星。鸿蒙第一人为了让他恢复前生记忆,为他...

鸿蒙元仙,探寻鸿蒙元仙的奇幻世界

鸿蒙元仙,探寻鸿蒙元仙的奇幻世界

《鸿蒙元仙》是一部由莫问前缘创作的仙侠类型网络小说。小说情节跌宕起伏、扣人心弦,主要讲述了主角在修仙道路上的经历和成长。以下是关于《鸿蒙元仙》的一些详细信息:1. 作者:莫问前缘。2. 简介:小说通过“琉璃伞罗撑万界,三口古剑斩诸天。修来永寿不灭体,证就鸿蒙第一仙”的描述,展现了主角在修仙世界中的传...