当canDisplayBannerAds为YES时,如何布局originalContentView?

时间:2015-04-12 19:48:50

标签: ios uiviewcontroller iad viewdidlayoutsubviews candisplaybannerads

我一直想开发文字游戏,所以我购买了一个应用模板 - 从源代码中学习。

在我将模板转换为ARC和故事板后,我现在想开始在我的应用程序中使用iAd。

然而,当我将self.canDisplayBannerAds = YES;放到主VC的viewDidLoad(显示带字母的游戏板)时,我注意到方法viewDidLayoutSubviews只被调用一次:< / p>

- (void)viewDidLoad
{
    [super viewDidLoad];
    // ... SKIPPED ...   
    self.canDisplayBannerAds = YES;

}

- (void) viewDidLayoutSubviews
{
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
    {
        float min = MIN(self.viewWordTableContainer.frame.size.width,
                        self.viewWordTableContainer.frame.size.height);
        NSLog(@"XXX min=%f", min);
        self.constraintWordTableWidth.constant = min;
        self.constraintWordTableHeight.constant = min;
        [_wordTable viewDidLayoutSubviews];
        [self updateLabelWords];
    }
}

结果,带有字母的游戏板没有正确调整大小并且没有占据整个宽度(这里fullscreen screenshot):

Xcode screenshot

当我删除该行或将其更改为NO时,会多次调用viewDidLayoutSubviews(但令人惊讶的是会打印min=375的相同值。)

我理解我的VC的主视图存储在self.originalContentView中,但为什么不调用viewDidLayoutSubviews(为正确布局VC需要多次)?

我在调试器中看了很多,也搜索了SO(发现只有2个类似问题) - 请在这里推荐一个解决方法。

iAd解决方案如何运作?不应该有一些iAd调用的方法告诉原始视图重新布局吗?

0 个答案:

没有答案