• 【iOS系列】- UITableView的使用技巧


    【iOS系列】- UITableView的使用


    UITableView的常用属性

    indexpath.row:行
    indexpath.section:组

    separatorColor:分割线的颜色
    separatorStyle:分割线样式

    用来自定义头部和尾部自定义view
    只需要设置高度,宽度设置无效
    tableHeaderView;
    tableFooterView;

    table中展示的数据是从模型(或者其他来源-数据源)中取得的,因此要更改表格数据,只需要更改数据源中得数据,并刷新表格即可。(不要直接更改tableviewcell中textLabel中得text数据,这样上下拖动tableview还是会显示原来的数据)

    1:修改模型数据
    2:刷新表格

    常用的刷新表格的方法

    //删除数据,表格的刷新
    [self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationBottom];
    
    //插入新数据,表格的刷新
    [self.tableView insertRowsAtIndexPaths:(NSArray *) withRowAnimation:(UITableViewRowAnimation)]
    
    //全局刷新
    reloadData;
    

    UITableViewCell的常用属性

    accessoryType:cell右边的指示器
    accessoryView:可自定义右边的view
    backgroundView:自定义背景view
    backgroundColor//优先级低于backgroundView
    selectedBackgroundView


    常用代理代理方法

    //一共有多少组数据
    - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView;
    
    //每一组有多少行数据
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
    
    //每一行显示什么内容
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
    
    
    //选中某一行
    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    
    //取消选中某一行
    (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
    
    //刷新表格
    [self.tableView reloadData];
    //注意IndexPaths参数是NSIndexPath的数组
    [self.tableView reloadRowsAtIndexPaths:(NSArray *) withRowAnimation:(UITableViewRowAnimation)]
    
    
    // 代理方法,实现了这个方法,就会自动实现了滑动删除功能。
    /**
     *  @param editingStyle 编辑样式:添加,删除
     *  @param indexPath    删除的行号
     */
    -(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
    {
    	//由于tableview还有插入模式,故这里增加判断
        if (editingStyle == UITableViewCellEditingStyleDelete) {//删除操作
        
        } 
    }
    


    注:tableView加载完毕后没有数据,一定要设置相应的代理方法

    tableView.delegate = self;

    tableView.dataSource = self;


    xib封装view

    1:新建xib描述view的内部结构
    2:新建类,继承自view(也取决于xib的跟对象,比如UITableViewCell),
    3:把xib的类型修改为新建类的类型,并把xib内部的空间和类进行连线
    4:提供类方法,可以返回自定义的view


    /**
     *  构造方法,初始化对象时候调用
     *   自定义cell的时候,在这个方法中添加需要显示的子控件
     */
    -(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
    

    //延时操作
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(<#delayInSeconds#> * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
    code to be executed after a specified delay
    });


    作者:Darren

    微博:@IT_攻城师

    github:@Darren90

    博客:http://www.cnblogs.com/fengtengfei/

    欢迎您的访问...


  • 相关阅读:
    DbEntry——学习笔记(二)
    新的开始
    Jquery Dialog的使用
    使用System.Net.Mail.MailMessage 来发送邮件
    三层架构中的"业务逻辑层"
    Ajax请求中的async:false/true的作用
    1
    招聘会项目的开发
    操作全角与半角(C#)
    sqlserver把数据库中的表完整的复制到另一个数据库
  • 原文地址:https://www.cnblogs.com/fengtengfei/p/4421129.html
Copyright © 2020-2023  润新知