2013-09-11 113 views
4

我期待在我的廣告出現在底部的同時動畫我的UIView容器的大小。準備好後,我會從屏幕底部向上滑動廣告。我希望我的UIView容器能夠減少與廣告一樣大小的大小。如何爲UIView容器設置動畫以降低其高度?

我創建了一個出口屬性爲頂級的UIViewController內我的容器視圖,它是嵌入在

我的廣告動畫代碼:

- (void)adViewDidReceiveAd:(GADBannerView *)view 
{ 
    NSLog(@"Received Ad"); 

    [UIView animateWithDuration:1.0 animations:^ { 
     view.frame = CGRectMake(0.0, 
           self.view.frame.size.height - view.frame.size.height, 
           view.frame.size.width, 
           view.frame.size.height); 



     // This is where I think I would need to animate the container view. 

    }]; 
} 

我怎樣才能減少我的容器視圖的大小以匹配廣告的?我需要容器留在同一個地方和一切,但有些高度需要從底部取下。

回答

2

這很簡單:只需在您將橫幅視圖製作成動畫時在同一個塊中設置動畫。它會是這樣的:

[UIView animateWithDuration:1.0 animations:^ { 

    view.frame = CGRectMake(0.0, 
          self.view.frame.size.height - view.frame.size.height, 
          view.frame.size.width, 
          view.frame.size.height); 



    self.containerView.frame = CGRectMake(self.containerView.frame.origin.x, 
          self.containerView.frame.origin.y, 
          self.containerView.frame.size.width, 
          self.containerView.frame.size.height - view.frame.size.height); 
}]; 

這段代碼將減少您的containerView爲同一高度的橫幅,同時。你可以隨意更改/改編。

編輯:如果您使用自動佈局,您應該爲約束創建一個IBOutlet併爲其設置動畫,而不是幀本身。

+0

這實際上是我寫在那裏的確切代碼,但它根本沒有做任何事情。容器視圖沒有改變。任何想法爲什麼會發生? – Jonathan

+0

我實際上只是對它進行了另一次測試,並將視圖'彈出'到我們指定的正確框架,但隨後它立即'彈出'回到原來的樣子。所以基本上它是執行語句,然後立即改回 – Jonathan

+0

這段代碼肯定只會收縮cointainerView框架。如果它變回來,問題就在別的地方。看看你的代碼,你可能會改變這個視圖的框架,或者像這樣 –