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)]];
上发布了一个示例项目
我在视图控制器中将 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)]];
上发布了一个示例项目