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