无法从superview中删除视图

时间:2015-09-30 17:41:48

标签: ios objective-c

我正在使用横​​幅代码,以在下面的示例代码中显示横幅

   HZBannerAdOptions *options = [[HZBannerAdOptions alloc] init];
        [HZBannerAd requestBannerWithOptions:options success:^(HZBannerAd *banner) {
            [viewController.view addSubview:banner];
        } failure:^(NSError *error) {
            NSLog(@"Error = %@",error);
        }];

但是,当我想隐藏/删除横幅时,我会使用它;

[self.currentBannerAd removeFromSuperview];
    self.currentBannerAd = nil;

但它不起作用,横幅仍然存在,我尝试了一些变体,如

[currentBannerAd setHidden:YES];

没有成功,有任何想法如何从视图中删除此横幅?

1 个答案:

答案 0 :(得分:1)

当你将横幅添加到视图中时,你没有引用它,你必须将它分配给这样的属性:

HZBannerAdOptions *options = [[HZBannerAdOptions alloc] init];
[HZBannerAd requestBannerWithOptions:options success:^(HZBannerAd *banner) {
    self.currentBannerAd = banner;
    [viewController.view addSubview:self.currentBannerAd];
} failure:^(NSError *error) {
    NSLog(@"Error = %@",error);
}];

然后使用您自己的代码删除它,只需添加layoutIfNeeded行:

[self.currentBannerAd removeFromSuperview];
self.currentBannerAd = nil;
[viewController.view layoutIfNeeded];