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;
     
  • 相关阅读:
    【leetcode】135. Candy
    【leetcode】224. Basic Calculator
    【leetcode】72. Edit Distance
    【leetcode】712. Minimum ASCII Delete Sum for Two Strings
    The Saltwater Room
    New Concept English three (45)
    2017.11.23 display fun --STM8
    New Concept English three (44)
    New Concept English three (43)
    2017.11.18 IAP下载(STM8,PIC,STM32)
  • 原文地址:https://www.cnblogs.com/MrTao/p/5145590.html
Copyright © 2011-2022 走看看