2010-12-01 39 views
0

我在與移動視圖一些麻煩:定位架不動後,工作到iOS 4.2

- (void)viewDidLoad { 

    CGRect newFrame = self.popUp.view.frame; 
    newFrame.origin.y = self.view.bounds.size.height; 
    self.popUp.view.frame = newFrame; 

    [[self view] addSubview:[self.popUp view]]; 

    [super viewDidLoad]; 
} 

這應該把子視圖popUp當前屏幕下方,但它似乎並沒有被移動它。我幾乎肯定這是在4.2以前的版本。關於可能發生什麼的任何想法?抱歉,模糊不清。如果你有任何問題隨時問。

回答

0

您是否嘗試將[super viewDidLoad]移動到方法的頂部?你調用超類的方法會影響繼承變量的狀態。

這個好職位:`[super viewDidLoad]` convention

+0

嗯,沒有伎倆。感謝您的鏈接。好信息。 – emachine 2010-12-01 23:31:22

0

看起來你正在這樣的popUp.view頂部是在self.view底部。然後,當您將popUp.view添加到self.view時,您將其置於self.view的「外部」。你可以通過newFrame.origin.y = self.view.bounds.size.height - 100;來驗證它是否顯示。

您的視圖不像之前顯示的原因之一可能是您已更改clipsToBounds。我想它也可以是一些其他的繪圖優化發生,而不是繪製視圖是外界和不可見的。

如果你希望你彈出來顯示視圖我認爲更好的辦法是要麼把你彈出你的觀點的底部之下:

newFrame.origin.y = self.view.bounds.size.height - newFrame.size.height; 

,或者通過將彈出視圖在self.view的超級視圖中。在這種情況下,你可能想要處理superview控制器中的顯示。