【问题标题】:Strange behaviour in iPad device has been inclined horizontallyiPad设备中的奇怪行为已水平倾斜
【发布时间】:2016-01-15 11:09:28
【问题描述】:

当我水平倾斜 iPad 设备时,我得到一个奇怪的行为。 通知:

 NSNotificationCenter.defaultCenter().addObserver(self, selector: "MySelector", name: UIDeviceOrientationDidChangeNotification, object: nil)

已被触发并调用“MySelector”导致无用的 ui 更新。 当我的设备水平倾斜时,有没有办法避免触发我的选择器?

【问题讨论】:

    标签: ios swift rotation device-orientation uideviceorientation


    【解决方案1】:

    我从以下先前提出的问题中看到:Link - 如果您不希望出现这样的通知,那么您将需要覆盖 viewDidDisappear 方法并调用 removeObserver()。我不确定这是否是您正在寻找的答案,因为我在理解您的原始问题时遇到了一些麻烦。如果这是您想知道的,请告诉我。

    【讨论】:

    • 这样做会同时禁用方向翻转,我相信发帖人是在说,如果他有一个设备平放在一个面向水平的表面上,并且他抬起屏幕并且它仍然是水平的,那就是仍在调用orientationdidchange 通知。
    • 嗯,好吧,我没想到这就是问题的意思。
    【解决方案2】:

    尝试将调用函数包装在 if 条件中以确保方向已更改。这是伪代码:

    func MySelector
    {
      if oldorientation != neworientation
      {
          do stuff
      }
    }
    

    如果此代码仍在触发,则意味着系统将快速切换到纵向然后横向,您可能需要放入一个小计时器或其他东西来仔细检查方向。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多