我有一个问题是

这是showads函数。

[self.mMainView addSubview:adViewController.view];
//...(my function to display ads)

这是hideads函数。
 //...(my function to hide ads)
 [[AdViewController sharedAdViewController].view removeFromSuperview];
 [self.mMainView setNeedsDisplay];
mMainViewUIViewAdViewControllerUIViewController

问题在于,在调用showads功能之后,我的广告会显示在mMainView上。但是,在调用hideads函数之后,我的广告没有消失,它仍然显示在mMainView上。

注意:调用hideads并中断然后恢复应用程序后,我的广告将消失。

所以,我想将其删除,请您详细解释一下,如果可以的话,请教我如何解决它?

最佳答案

删除或添加子视图时无需调用setNeedsDisplay。它在中断后更新的事实使我怀疑您没有在主线程上调用[[AdViewController sharedAdViewController].view removeFromSuperview];。该代码的上下文是什么?

如果不在主线程上,则可以对其进行调度:

dispatch_async(dispatch_get_main_queue(), ^{
   [[AdViewController sharedAdViewController].view removeFromSuperview];
});

08-05 08:18