2013-05-30 59 views
1

好吧,所以我想添加一個iAD橫幅到我的項目中,如果發生錯誤,我會隱藏橫幅。這個原因是空白的,我自然不希望移動UIWebview來填充這個空間。問題是我似乎無法重新定位web視圖。 (我正在使用界面生成器來設置原始位置)。編程方式重新定位iWeb隱藏時的UIWebView

此圖片說明我的佈局:

enter image description here

這是我一直在試圖使用重新定位這是擺在viewDidLoad中的代碼:

//iAd 
_WebsiteiADBanner.delegate = self; 
[_WebsiteiADBanner setHidden:YES]; 

CGRect oldFrame = self.webView.frame; 

CGRect newFrame = CGRectMake(oldFrame.origin.x, oldFrame.origin.y-44, oldFrame.size.width, oldFrame.size.height); 
[self.webView setFrame:newFrame]; 
[self.webView reload]; 

回答

4

您souldn't地方代碼在ViewDidLoad中,因爲它只加載一次。相反,您必須將其置於其代表中的iAd功能中。 (確保你的iAd視圖已經將viewController設置爲它的委託)。完美的委託方法提到(我只是用視圖沒有負荷,試圖調用調試立即產生效果),雖然你不小心

-(void)bannerViewDidLoadAd:(ADBannerView *)banner{ 
    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:1]; 
    //hide the banner and move the webview 
    [banner setHidden:FALSE]; 
    CGRect newFrame = CGRectMake(0, 44, self.webView.frame.size.width, self.webView.frame.size.height); 
    [self.webView setFrame:newFrame]; 
    [UIView commitAnimations]; 
} 

-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error{ 
    [UIView beginAnimations:nil context:NULL]; 
    [UIView setAnimationDuration:1]; 
    //show the banner and move the webview to the top 
    [banner setHidden:TRUE]; 
    CGRect newFrame = CGRectMake(0, 0, self.webView.frame.size.width, self.webView.frame.size.height); 
    [self.webView setFrame:newFrame]; 
    [UIView commitAnimations]; 
} 
+0

作品:下面的例子會做動畫(尚未對其進行測試)錯過了self.webView.frame.size.width中的大小訪問器。非常感謝,這完全是我所需要的。 – CreativeAbyss