1

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

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

self.canDisplayBannerAds = YES;但是,当我放入viewDidLoad主 VC(显示带有字母的游戏板)时,我注意到该方法viewDidLayoutSubviews只调用了一次:

- (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];
    }
}

结果是带有字母的游戏板没有正确调整大小并且没有占据整个宽度(这里是全屏截图):

Xcode 截图

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

我知道我的 VC 的主视图被存储到self.originalContentView但为什么不viewDidLayoutSubviews被调用(正确布局 VC 所需的多次)?

我在调试器中看了很多,也在 SO 上进行了搜索(只找到了 2 个类似的问题) - 请在此处向我推荐一个解决方法。

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

4

0 回答 0