zoukankan      html  css  js  c++  java
  • 右滑退出手势及隐藏导航栏存在的风险

    右滑手势

    1. 基本原理:
      1. interactivePopGestureRecognizer.enabled在正常情况下控制手势是否可用,默认是可用状态
      2. 如果重写了返回按钮, 需要设置interactivePopGestureRecognizer.delegate才能重新启动手势功能
    2. 调用时机:
      1. 改变手势设置和恢复手势设置应该在viewDidAppearviewWillDisappear成对调用
      2. 其他: viewWillAppear:等函数里应该调用super的对应函数
    3. 现有问题
      1. 当在viewWillAppear里设置interactivePopGestureRecognizer.enabled = NO时,右滑退出时会卡死界面。
      2. 如果interactivePopGestureRecognizer.delegate = nil 后没有恢复成原值, 就会打开一些原本不需要返回手势的页面
    4. 修改
      1. 在基类HDFBaseViewController里统一处理了自定义返回按钮的返回手势的情况:调forceEnablePopGesture函数可以强制启用返回手势。
    5. 第三方库: MLTransition

    正确的写法:

    原因是视图生命周期调用顺序不对

    NavigationBar的展现

    1. [self.navigationController setNavigationBarHidden:YESorNO animated:YESorNO];
    2. 现有问题: 如果在viewWillAppear/viewWillDisappear里调用[self.navigationController setNavigationBarHidden:YES animated:NO], 返回手势进行一半时取消, 然后再多次返回后会出现导航栏错乱的情况.
    3. 导航乱错乱不是出现在当前页面的当前操作, 而是会出现在几个之后的页面, 很难查找原因
    4. 修改: 
      1. 修改animated的值, 改成 [self.navigationController setNavigationBarHidden:YESorNO animated:animated]
  • 相关阅读:
    初级工程师该如何去学习,如何去研发开关电源?
    CentOS-pam认证机制简介
    Linux-密码复杂度限制
    如何写一个简单的webserver(一):最简实现
    MySQL5.6绿色版安装(mysql-5.6.24-winx64.zip)
    Linux忘记roo密码的解决办法
    Linux中的netstat命令详解
    WireShark抓包分析(二)
    Wireshark抓取TCP包分析
    Wireshark 基本介绍和学习 TCP 三次握手
  • 原文地址:https://www.cnblogs.com/tufei7/p/5972754.html
Copyright © 2011-2022 走看看