UITableViewDataSource协议

时间:2021-08-28 00:36:45

前言:

在iOS开发中,表视图UITableView 是我们做UI界面设计时的重要视图。

那么,使用表视图UITableView 需要遵守哪些协议呢?

<UITableViewDataSource,UITableViewDelegate>
UITableViewDataSource 表视图数据源协议,用来控制表视图的显示内容;
UITableViewDelegate  表视图协议,用来控制表视图的显示以及每个cell的高度和每个分区的头尾高度等;

本文先学习UITableViewDataSource协议。

UITableViewDataSource协议有哪些方法呢?

首先,必须要实现的方法:

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

这个方法用来设置tableView的每个分组的行数;

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

这个方法用来返回cell,就是用来控制每一行返回的内容;

以上两个方法是必须实现的;

其他可选择的呢?

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

设置tableView里面有几个分区,如果不写默认为1;

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

设置分区头的内容,返回值是NSString类型;

- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section;

同理,这个方法是设置分区尾的内容,返回值是NSString类型;

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

这个方法是用来控制Cell是否可以编辑,如果没有实现,所有行被认为是可编辑的;

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

这个方法是用来控制Cell是否可以移动,只有实现了,才可以移动;

- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView;  

返回每个分区的标题;

- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index;

告诉tableView,哪一行和哪一个分组标题对应;

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath;

在编辑结束cell的时候,保存修改;

- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath;

根据行数交换cell;

以上就是所有的UITableViewDataSource协议的方法;


														
		

UITableViewDataSource协议的更多相关文章

  1. 窥探Swift之协议&lpar;Protocol&rpar;和委托代理&lpar;Delegate&rpar;回调的使用

    协议与委托代理回调在之前的博客中也是经常提到和用到的在<Objective-C中的委托(代理)模式>和<iOS开发之窥探UICollectionViewController(四) - ...

  2. IOS之未解问题--给UITableView提取UITableViewDataSource并封装瘦身失败

    前言:阅读了<更轻量的 View Controllers>,发现笔者这个优化重构代码的想法真的很不错,可以使得抽取的UITableViewDataSource独立写在一个类文件里,并且也写 ...

  3. iOS开发笔记系列-基础5&lpar;分类和协议&rpar;

    分类 在Objective-C中,除了通过新建子类的方式来向类添加新方法外,还可以通过分类的方式.分类提供了一种简单的方式,将类的定义模块化到相关方法的组或分类中,它还提供了扩展现有类定义的简便方式, ...

  4. UITableView 协议中常用的方法

    UITableViewDataSource 协议中常用方法 1.设置右边 索引值 - ( NSArray *)sectionIndexTitlesForTableView:( UITableView ...

  5. ios协议和委托

    在iPhone开发协议和委托是常接触到的东西,到底什么是协议什么是委托,他们什么关系? 一 协议 (1)协议相当于没有与类相关联的接口,他申明一组方法,列出他的参数和返回值,共享给其他类使用,然后不进 ...

  6. iOS UITableView 与 UITableViewController

    很多应用都会在界面中使用某种列表控件:用户可以选中.删除或重新排列列表中的项目.这些控件其实都是UITableView 对象,可以用来显示一组对象,例如,用户地址薄中的一组人名.项目地址. UITab ...

  7. iOS 编辑UITableView(根据iOS编程编写)

    上个项目我们完成了 JXHomepwner 简单的应用展示,项目地址.本节我们需要在上节项目基础上,增加一些响应用户操作.包括添加,删除和移动表格. 编辑模式 UITableView 有一个名为  e ...

  8. 【IOS开发笔记02】学生管理系统

    端到端的机会 虽然现在身处大公司,但是因为是内部创业团队,产品.native.前端.服务器端全部坐在一起开发,大家很容易做零距离交流,也因为最近内部有一个前端要转岗过来,于是手里的前端任务好像可以抛一 ...

  9. 使用UITableView展示数据

    TableView主要用于展示数据,类似于Android中的ListView. 我们可以通过两个方式使用TableView.第一种是直接使用TableView类.第二种是通过UITableViewCo ...

随机推荐

  1. 【&period;net深呼吸】动态类型(高级篇)

    前面老周给大家介绍了动态类型使用的娱乐级别用法,其实,在很多情景下,娱乐级别的用法已经满足需求了. 如果,你想自己来控制动态类型的行为和数据的存取,那么,就可以考虑用今天所说的高大上技术了.比如,你希 ...

  2. AOP基本名词解释

  3. &lbrack;&period;net 面向对象编程基础&rsqb; &lpar;13&rpar; 面向对象三大特性——多态

    [.net 面向对象编程基础] (13) 面向对象三大特性——多态 前面两节,我们了解了面向对象的的封装和继承特性,面向对象还有一大特性就是多态.比起前面的封装和继承,多态这个概念不是那么好理解.我们 ...

  4. entity framework mysql 那些写法你碰不得

    记 几次 ef 数据查询踩到的坑......未完待续

  5. 了解ANSI编码

    ANSI:American National Standards Institute:美国国家标准学会 ANSI编码:为使计算机支持更多语言,不同国家和地区分别制定了符合自身的外文字符延伸编码方式(如 ...

  6. WordPress &OpenCurlyQuote;crypt&lowbar;private&lpar;&rpar;’方法远程拒绝服务漏洞

    漏洞名称: WordPress ‘crypt_private()’方法远程拒绝服务漏洞 CNNVD编号: CNNVD-201306-250 发布时间: 2013-06-20 更新时间: 2013-06 ...

  7. Codeforces &num;Round 785&lpar;Div&period;2&rpar;

    假的div2 C题没事写什么公式被卡精度了,掉分了gg --------------------------------------------------- A....几个每个字符串预先给好一个代表 ...

  8. vim使用技巧大全

    1.vim清空内容 光标移到第一行,然后在非插入模式按10000后然后点dd .要嫌笨的话就在非插入模式下输入:.,$d 一回车就全没了 2.vim光标跳转操作 1.跳到文本的最后一行:按“G”,即“ ...

  9. editplus设置自动换行方法 editplus自动换行设置步骤

    原文链接:https://www.jb51.net/softjc/165897.html 发布时间:2014-05-14 17:03:54   作者:佚名    我要评论 editplus自动换行设置 ...

  10. object-c中NSString与int和float的相互转换

    1,字符串拼接 NSString *newString = [NSString stringWithFormat:@"%@%@",tempA,tempB]; 2,字符转int in ...