美文网首页iOS学习iOS DeveloperiOS程序猿
用recursiveDescription解剖cell

用recursiveDescription解剖cell

作者: 7937 | 来源:发表于2017-03-10 15:05 被阅读106次

    一直眼红Swipes这个App做的真是舒服, 读了大牛们关于自定义cell的框架发现都执着于给cell加button, 不能哧溜哧溜地往左滑, 就寻思着做一个顺滑的cell。断断续续写了两天眼看就要写完了, 然而往左滑的动画却一直是不如人意的 :(


    想了想是不是左滑的时候系统的Delete按钮在作祟, 于是

    tableView:cellForRowAtIndexPath:方法里加入

    #ifdef DEBUG
        NSLog(@"===cell===", [cell performSelector:@selector(recursiveDescription)]);
    #endif
    

    tableView:commitEditingStyle:forRowAtIndexPath:方法里加入

    #ifdef DEBUG
        NSLog(@"===tableview===", [[tableView cellForRowAtIndexPath:indexPath] performSelector:@selector(recursiveDescription)]);
    #endif
    
    • recursiveDescription这是一个私有方法, 用来打印任意的视图结构, 并按视图层次排列, 它会递归地做这件事, 对每个子视图, 再去找它们的子视图(比用Reveal查看视图结构更完整)。
    • Release是发行版本,不包含任何调试信息, Debug是调试版本,Debug和Release调用两个不同的底层库。 在大工程里调试时把NSLog()夹在#ifdef DEBUG#endif中间,NSLog()只有在调试时才会被编译, 省去很多麻烦。
      控制台输出cell所有子视图
      控制台输出tableView所有子视图
      一共输出了六个视图:
      其中UITableViewCellDeleteConfirmationViewActionButton(删除按钮)放置的位置, 宽高和Button一样。这是我要找的view! :)
      不过......没开canEditRowAtIndexPath:方法是不会有这个view的。
      嗯一个cell就是这样的干干净净
    蓝色是contentView、紫色是cell背景色

    附顺滑的cell框架:https://github.com/7937/AJSlideCell.git

    相关文章

      网友评论

        本文标题:用recursiveDescription解剖cell

        本文链接:https://www.haomeiwen.com/subject/jfiggttx.html