2011-01-12 38 views
1

我有一個對象,它是UIView的子類,可以作爲子視圖添加到視圖層次結構中。我想能夠從它的超級視圖中移除UIView,並將其添加爲主窗口的子視圖,然後展開爲全屏。從其superview中移除UIView並將其框架擴展到全屏

// Remove from superView and add to mainWindow 
[self retain]; 
[self removeFromSuperView]; 
[mainWindow addSubView:self]; 

// Animate to full screen 
[UIView beginAnimations:@"expandToFullScreen" context:nil]; 
[UIView setAnimationDuration:1.0]; 
self.frame = [[UIScreen mainScreen] applicationFrame]; 
[UIView commitAnimations]; 

[self release]; 

首先我是在正確的線路:

的線沿線的東西嗎?其次,有沒有一種簡單的方法讓對象獲得一個指向mainWindow的指針?

感謝

戴夫

+0

回答你的第二個問題:UIWindow * mainWindow = [[UIApplication sharedApplication] keyWindow]; – Felix 2011-01-12 20:11:03

回答

3

您可以使用視圖

self.window 
+0

乾杯安德烈,完全錯過了那一個。它也使得從超級視圖中移除非常容易,因爲視圖只能有一個超級視圖。所以,簡單地[self.window addSubView:self]似乎可以做到這一點,而不需要retain和removeFromSuperView。問候戴夫。 – 2011-01-24 14:16:54

2

看起來不錯的窗口屬性。但在開始動畫之前,您可能想將視圖的框架從其超視圖座標系轉換爲窗口的座標系。否則動畫將不平滑。

+0

嗨克里斯,有沒有一種方法獲得視圖座標相對於主窗口,而不是它的超視圖的視圖的座標?框架屬性是相對於父視圖,這是否意味着我不得不遍歷樹並手動計算協調orninates? – 2011-01-25 15:28:30

相關問題