2013-07-25 30 views
1

概述:我有一个奇怪的错误,其中我的肖像视图的右侧按钮后,旋转到风景,然后再次回到肖像不工作。UIButtons停止工作后旋转到风景,然后回到肖像

详细信息:这是产生问题的场景。如果我以肖像开始,我的所有按钮都可以使用。我旋转到横向(见下面的代码)和所有按钮的工作。我旋转回肖像,屏幕右侧1/4的按钮不响应。就好像有一个覆盖这些按钮的透明视图。奇怪的是,如果按钮的一部分突出到不可见屏障的左侧,我可以点击该按钮的该部分,但不在“覆盖”下的右侧部分。如果我现在旋转到风景,景观中的所有按钮都可以工作。当我旋转回肖像时,无形的“封面”向左移动了另一个1/4以覆盖大约1/2的屏幕。如果我再次旋转到横向(所有按钮始终工作在横向),然后返回到纵向,隐形“封面”移动了1/4以覆盖屏幕的3/4。最终,我的控件没有一个以纵向响应。

重要的项目信息

  1. 这个程序是普遍的。该问题只发生在iPad人像模式中。 iPhone版本从不以纵向(或横向)模式显示此问题。
  2. 只有3个视图:容器视图(它是根),纵向视图和横向视图。
  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]; 
} 

我已经试过

  1. 的问题,我发现声音远程相似提到使用内存泄漏检查仪器。我尝试了僵尸和分配模板,没有看到任何奇怪的东西(虽然这是我使用过的第一个工具)。
  2. 编辑:所有这一切都是在模拟器中,我还没有在设备上测试过这个问题。

感谢您的帮助。

+1

你质疑在运行时的子视图,并添加边框到每个所以你可以看到他们在哪里? – Wain

+0

这与内存泄漏没有任何关系,按钮可能超出了他们的超视界范围。给superview一个背景颜色,这样你就可以看到它在哪里,看看是不是发生了什么。 – rdelmar

+0

更容易,将superview的“clipsToBounds”属性设置为YES。 –

回答

-1

,我觉得你没有设置potrait和景观框架正确,这意味着当u旋转它的一些其他组件的框架重叠与按钮框架等用户交互被禁用

1

在您的模拟器的菜单栏中选择

调试 - >颜色混合图层

然后Command + 旋转它

然后Command + 后旋转

有可能是被古怪redimensioned和covers-也许部分视图 - 您的按钮

+0

感谢您的快捷方式 –

相关问题