• UITableViewDataSource协议


    前言:

    在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协议的方法;





  • 相关阅读:
    墙奸有感
    关于ubuntu里的fcitx
    Ubuntu 9.10 ati HD 3470 显卡驱动 搞定
    XP与Ubuntu双系统的问题
    invalid conversion from ‘__pthread_t*’ to ‘pid_t’
    Julian Day
    m的n次幂的求法
    Sublime Text 2
    在虚拟机Virtualbox安装Win8消费者版
    记一个循环的错误
  • 原文地址:https://www.cnblogs.com/jukaiit/p/4702797.html
Copyright © 2020-2023  润新知