ios - UIButtons 在旋转到横向然后回到纵向后停止工作

标签 ios rotation uibutton landscape-portrait

概述 : 我有一个奇怪的错误,我的纵向 View 右侧的按钮在旋转到横向然后再回到纵向后不起作用。

详情 : 这是产生问题的场景。如果我从纵向开始,我所有的按钮都会起作用。我旋转到横向(参见下面的代码)并且所有按钮都可以工作。我旋转回纵向,屏幕右侧 1/4 的按钮没有响应。就像有一个透明的 View 覆盖了这些按钮。奇怪的是,如果按钮的一部分伸出那个隐形屏障的左侧,我可以点击按钮的那部分,但不能点击“封面”“下方”的右侧部分。如果此时我要旋转到横向,横向中的所有按钮都会起作用。当我旋转回纵向时,那个看不见的“封面”已经向左移动了另外 1/4 以覆盖大约 1/2 的屏幕。如果我再次旋转到横向(所有按钮始终以横向工作)然后回到纵向,则不可见的“封面”已经移动了另外 1/4 以覆盖屏幕的 3/4。最终,我的控件都没有纵向响应。

重要项目信息 :

  • 这个应用程序是通用的。该问题仅在 iPad 纵向模式下发生。 iPhone 版本在纵向(或横向)模式下从不显示此问题。
  • 只有 3 个 View :容器 View (即根)、纵向 View 和横向 View 。
  • 这个应用程序是 ARC 并且针对 6.1。我有所有正确的方法来处理旋转事件。

  • 这是旋转 View 的代码:
    [portrait removeFromSuperview];
    [landscape removeFromSuperview];
    
    UIDeviceOrientation currentOrientation = [[UIDevice currentDevice] orientation];
    if (currentOrientation==UIDeviceOrientationUnknown) {
        currentOrientation = (UIDeviceOrientation)[[UIApplication sharedApplication] statusBarOrientation];
    }
    if ((currentOrientation == 0) || (UIInterfaceOrientationIsPortrait(currentOrientation))) {
        [[self view] addSubview:portrait];
    }
    else {   //landscape
        [[self view] addSubview:landscape];
    }
    

    我试过的 :
  • 我发现听起来很相似的问题提到了使用 Instruments 检查内存泄漏。我尝试了僵尸和分配模板,并没有看到任何奇怪的东西(尽管这是我第一次使用 Instruments)。
  • 编辑:所有这些都在模拟器中,我还没有在设备上测试过这个问题。

  • 谢谢你的帮助。

    最佳答案

    在模拟器的菜单栏上选择

    调试 -> 颜色混合图层

    然后Command + 旋转它

    然后Command + 旋转回来

    可能会有一个 View 奇怪地重新调整尺寸并覆盖 - 可能部分覆盖 - 你的按钮

    关于ios - UIButtons 在旋转到横向然后回到纵向后停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17869581/

    相关文章:

    ios - 防止 UIButton 标签在使用 Timer 快速更改标签时不闪烁

    iphone - 全屏 View 隐藏导航和标签栏 iphone

    ios - 提交 iOS 应用更新

    javascript寻找旋转矩形的中心

    ios - 如何为 navigationItem titleView 设置按钮?

    ios - IBInspectable setTitle :forState on UIButton not working

    ios - 键盘扩展的内存限制

    如果不重新启动应用程序,iOS storyBoard 本地化将无法工作

    ios - UIview Demo 只在一个方向旋转

    matlab - 热图中的旋转轴刻度标签