Facebook Audience Network ios FBAdView 宽度

Facebook Audience Network ios FBAdView width

我在视图控制器中将 FBAdView 添加到 UIView。 (我将视图背景设置为红色) FBAdView 是使用 kFBAdSizeHeight50Banner 的 adSize 创建的。 问题是 FBAdView 在添加时会计算它的宽度,但在旋转设备后它不会再次计算它的宽度

我试过使用自动版式,但没用

添加 FBAdview 的代码(添加到带有红色背景的 UILabel)

FBAdView *fbAdView = [[FBAdView alloc] initWithPlacementID:@"***************_***************" adSize:kFBAdSizeHeight50Banner rootViewController:self]; fbAdView.delegate = self; [fbAdView loadAd]; [self.banner addSubview:fbAdView];

自动布局代码 - 不起作用

</p> <p>// 宽度约束,父视图宽度 [self.banner addConstraint:[NSLayoutConstraint constraintWithItem:fbAdView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:self.banner attribute:NSLayoutAttributeWidth multiplier:1 constant:0]];</p> <pre><code>// Height constraint, parent view height [self.banner addConstraint:[NSLayoutConstraint constraintWithItem:fbAdView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:self.banner attribute:NSLayoutAttributeHeight multiplier:1 constant:0]]; // Center horizontally [self.banner addConstraint:[NSLayoutConstraint constraintWithItem:fbAdView attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:self.banner attribute:NSLayoutAttributeCenterX multiplier:1.0 constant:0.0]]; // Center vertically [self.banner addConstraint:[NSLayoutConstraint constraintWithItem:fbAdView attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:self.banner attribute:NSLayoutAttributeCenterY multiplier:1.0 constant:0.0]];

打印屏幕 添加横幅后,它适合屏幕宽度 旋转后它不会改变它的宽度(就像它的父红色视图一样)

我认为您缺少一些限制条件。

添加这些行(可能需要一些小的改动)使您的代码工作:

self.banner.translatesAutoresizingMaskIntoConstraints = NO;
fbAdView.translatesAutoresizingMaskIntoConstraints = NO;


// Width constraint
[self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.banner
                                                     attribute:NSLayoutAttributeWidth
                                                     relatedBy:NSLayoutRelationEqual
                                                        toItem:self.view
                                                     attribute:NSLayoutAttributeWidth
                                                    multiplier:1
                                                      constant:0]];

// Height constraint
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[banner(==50)]"
                                                                 options:0
                                                                 metrics:nil
                                                                   views:NSDictionaryOfVariableBindings(banner)]];

我在 https://github.com/overlordnyaldee/BannerAutoLayout

上发布了一个示例项目