zoukankan      html  css  js  c++  java
  • tableView选中行的调用顺序/ 取消选中Cell

    UITableViewCell它有两个属性highLighted、selected。很明显一个是高亮状态, 一个是选中状态。
    UITableViewCell, 对应的2个方法
    // 高亮状态调用的方法
    - (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated;
    
    // 选中状态调用的方法
    - (void)setSelected:(BOOL)selected animated:(BOOL)animated;
     
    // 这个方法让tableView 默认选择第一个
     [self selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
    当我们点击cell的时候,其实是先设置cell的高亮状态为YES, 因为cell首先是出于高亮状态, 然后松手的时候再将cell的高亮状态设置为NO, 接着才是设置cell的选中状态为YES, 最后才会去调用delegate中的tableview:didSelectRowAtIndexPath:方法。
     
    但是在开发中你会遇到点击cell, 如果cell的某行不需要被选中你要手动去设置取消点击cell选中状态, 那么就不能去调用 setSelected, 如果你调用setSelected取消cell选中, 你再滑动回当前行你会发现他还是被选中状态, 个人感觉是因为tableview 有个记录器, 记录当前你选中的是那些cell, 
     
    真正调用的是tableview的方法
    // 取消选中某行
    - (void)deselectRowAtIndexPath:(NSIndexPath *)indexPath animated:(BOOL)animated;

    调用它之后, 系统会调用setSelected, 并且传进去的参数是NO, 这样就会取消选中

    - (void)setSelected:(BOOL)selected animated:(BOOL)animated;
     
  • 相关阅读:
    神经网络训练收敛的解决办法
    minSdkVersion
    onlyoffice使用
    linux系统磁盘不足处理方法
    编辑docker容器中的文件
    如何使用Java获取上传图片需要旋转的角度且获取正确方向的图片
    Java数据类型转换
    bat脚本实现jdk安装、环境变量添加及jar包运行
    java实现文件上传接口及java调用文件上传接口
    flutter常用问题查询
  • 原文地址:https://www.cnblogs.com/MrTao/p/5145590.html
Copyright © 2011-2022 走看看