• 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;
     
  • 相关阅读:
    OA并发用户数(转)
    mysql中limit用法[转]
    解决IE浏览器中AJAX只能运行一次的IE缓存问题
    ASP.NET AJAX 1.0 beta 发布了...
    开始我的第一个WPF程序
    前WPF PM 用WPF写的一个XAML即时编辑器 kaxaml
    啊..要死了...
    const 和 static readonly
    DCDC Converter(六)同步整流管
    DCDC Converter(三)效率之计算(2):Discontinuous Mode
  • 原文地址:https://www.cnblogs.com/MrTao/p/5145590.html
Copyright © 2020-2023  润新知