以下是用于在设备旋转上设置子视图布局的代码片段(我使用相同的代码进行视图的初始设置):
(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
[super didRotateFromInterfaceOrientation:fromInterfaceOrientation];
CGRect screenBounds = [[UIScreen mainScreen] bounds];
if(screenBounds.size.height >= 1024) {
[myButton setFrame:CGRectMake((screenBounds.size.width/3), (screenBounds.size.height/100)*81, (screenBounds.size.width/3), (screenBounds.size.height/100)*16)];
}
else {
[myButton setFrame:CGRectMake((screenBounds.size.width/3), (screenBounds.size.height/100)*81, (screenBounds.size.width/3), (screenBounds.size.height/100)*16)];
}
}
正在发生的事情是myButton正在重新绘制,但尝试与按钮交互却什么也没做。如果我回到肖像,重绘后可以按下按钮。如果我从风景开始,按钮工作;但如果我后来旋转然后回到风景,按钮不再有效。这让我很难过。
答案 0 :(得分:4)
因此,如果不能查看故事板,查看层次结构等,就很难分辨出您的视图中发生了什么。但是,Xcode使用这些类型的问题进行故障排除变得更加容易。实时视图调试。
您可以尝试的第一件事是打开视图框架。这将允许您查看每个控件的框架和边界。很可能你会看到你的按钮的框架在一个地方,但边界是其他地方。您可以通过调试打开视图帧 - >查看调试 - >显示视图框架。
如果您需要更全面的层次结构概述 - 例如,可能有另一个视图覆盖按钮 - Xcode现在有一个非常酷的功能来捕获视图层次结构。您可以在3D中操纵层次结构,过滤某些控件等等。这将允许您在运行时直观地检查层次结构,并查看按钮可能出现的问题。调试 - >查看调试 - >捕获视图层次结构。