0
我有这个iPhone用户界面开发的慢性问题,其中视图有时似乎出现在屏幕上的位置不同于他们的框架属性报告的位置。下面是我在做什么,以尝试调试问题:iPhone用户界面布局调试
UIView *currentView = self.view;
while (currentView!=nil)
{
NSLog(@"frame: %f,%f,%f,%f", currentView.frame.origin.x,
currentView.frame.origin.y,
currentView.frame.size.width,
currentView.frame.size.height);
currentView = currentView.superview;
}
我预计这应该告诉我每一个元素了从给定的视图到应用程序的根的UIWindow元素层次的坐标和大小,每个元素相对于其父元素的坐标。但是,情况似乎并非如此。在我目前的情况下,我有一个用户界面,我试图调试其他时间旋转设备的位置,整个UI向上或向下移动20像素,但上面的代码块每次报告完全相同的数字。我试着在第二次延迟之后调用上面的代码,但是每次数字仍然是相同的。
有谁知道更好的方式来检查UI元素的屏幕坐标?如果我能够检测到什么时候出现问题,我可以在问题出现时予以补偿。
只是想提一下,这20px偏移问题发生在'每隔一个旋转',因为它只会发生在UIInterfaceOrientationLandscapeLeft和UIInterfaceOrientationPortrait(而不是LandscapeRight或PortraitUpsideDown)。一开始我并没有想到,这两幅风景画和两幅肖像将如何布置,真的会有所不同。一旦我意识到这一点,我就可以弥补这个问题......尽管我仍然不知道为什么会出现这种情况。 – Cruinh 2010-03-31 19:46:37