AutoLayOut - 根据BannerView高度设置UITableView高度

时间:2015-08-10 06:47:25

标签: objective-c iphone uitableview autolayout adbannerview

我在我的应用程序中使用adBanner,它位于屏幕底部,我在我的应用程序中使用tableview。

我在adBannerView和tableview之间建立了“水平间距”关系。现在我的问题是在adBannerView中加载广告之前我可以看到屏幕底部的空白区域,但我希望我的tableview在加载adBannerView之前覆盖该空间,当加载adBannerView时,我的tableview应该向上移动50像素。我怎样才能做到这一点?

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

我认为,您的adBanner高度为50像素。将tableview的底部空间设置为adBanner 0并且不要设置其高度。然后设置adBanner的高度并创建其约束的属性,该属性最初应为0,因此您的tableview最初将使用该空间。加载adBannerView后,再设置adBannerView height属性50,因此tableview将自动向上移动。这可能会有所帮助

答案 1 :(得分:0)

将Tablview的底部空间设置为supreview 0,顶部空间,前导空格和尾随空间约束。 并且像这样修改广告横幅代表它将提供所需的输出。 在viewDidLoad Adbanner视图alpha = 0.0

-(void)bannerViewDidLoadAd:(ADBannerView *)banner{
NSLog(@"Ad Banner did load ad.");
CGFloat height = [UIScreen mainScreen].bounds.size.height;
CGRect frame = self.viewForSource.frame;
frame.size.height = height-50;
self.viewForSource.frame = frame;
// Show the ad banner.
[UIView animateWithDuration:0.5 animations:^{
    self.adBanner.alpha = 1.0;
}];

}

-(void)bannerView:(ADBannerView *)banner didFailToReceiveAdWithError:(NSError *)error{
NSLog(@"Unable to show ads. Error: %@", [error localizedDescription]);
CGFloat height = [UIScreen mainScreen].bounds.size.height;
CGRect frame = self.viewForSource.frame;
frame.size.height = height;
self.viewForSource.frame = frame;
// Hide the ad banner.
[UIView animateWithDuration:0.5 animations:^{
    self.adBanner.alpha = 0.0;

}];

}