首页 文章

旋转后,UIButtons停止工作至横向,然后返回纵向

提问于
浏览
1

Overview :我有一个奇怪的错误,我的纵向视图右侧的按钮在旋转到横向然后再回到纵向后不起作用 .

Detail :这是产生问题的方案 . 如果我以肖像开始,我的所有按钮都可以工作 . 我旋转到横向(见下面的代码),所有按钮都有效 . 我旋转回肖像,屏幕右侧1/4的按钮没有响应 . 这就像有一个覆盖这些按钮的透明视图 . 奇怪的是,如果按钮的一部分突出到该隐形屏障的左侧,我可以点击该按钮的那一部分,但不能点击右侧部分"under" "cover" . 如果我此时要旋转到横向,那么横向中的所有按钮都会起作用 . 当我旋转回肖像时,那个不可见的"cover"向左移动了另外1/4以覆盖大约1/2的屏幕 . 如果我再次旋转到横向(所有按钮始终在横向上工作)然后再回到纵向,则不可见的"cover"已经移动了另外1/4以覆盖屏幕的3/4 . 最终,我的控件都没有纵向回应 .

Important project information

  • 这个应用程序是通用的 . 问题只发生在iPad纵向模式 . iPhone版本从未在纵向(或横向)模式下显示此问题 .

  • 只有3个视图:容器视图(根视图),纵向视图和横向视图 .

  • 这个应用程序是ARC,目标是6.1 . 我有所有正确的方法来处理旋转事件 .

以下是旋转视图的代码:

[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];
}

What I've tried

  • 我发现声音远远类似的问题提到使用仪器检查内存泄漏 . 我尝试了僵尸和分配模板,并且没有使用过仪器 .

  • 编辑:所有这些都在模拟器中,我还没有在设备上测试过这个问题 .

谢谢你的帮助 .

2 回答

  • -1

    我认为你没有正确设置potrait和landscape的框架,这意味着当你旋转它时,其他一些组件的框架与按钮框架重叠,因此用户交互被禁用

  • 1

    在模拟器的菜单栏上选择

    调试 - >颜色混合层

    然后 Command 旋转它

    然后 Command 将其旋转回来

    可能会有一个视图被奇怪地重新定义并覆盖 - 或许部分 - 你的按钮

相关问题