ios Facebook将FBNativeAdView添加为Subview

Gir*_*hai 8 facebook ios facebook-audience-network

我想使用预建视图FBNativeAdView(不想自定义FBNative Ad).如链接中所示

FBNativeAdView创建预建的原生广告模板视图并管理原生广告.

我在Facebook SDK中给出了Changed NativeAdSample示例.并添加为mainView(adUIView)的子视图.FBNativeAdView

-(void) nativeAdDidLoad: (FBNativeAd * ) nativeAd 
{
        NSLog(@"Native ad was loaded, constructing native UI...");

        if (self._nativeAd) 
        {
            [self._nativeAd unregisterView];
        }

        self._nativeAd = nativeAd;

        // Here I did add
        FBNativeAdViewAttributes * attributes = [[FBNativeAdViewAttributes alloc] init];
        attributes.backgroundColor = [UIColor whiteColor];
        attributes.titleColor = [UIColor blackColor];

        FBNativeAdView * fbNativeAdView = [FBNativeAdView nativeAdViewWithNativeAd: self._nativeAd withType: FBNativeAdViewTypeGenericHeight300 withAttributes: attributes];
}
Run Code Online (Sandbox Code Playgroud)

所以问题是如何添加fbNativeAdView作为ParentView的子视图,以便它应该在父视图中查看.我做到了

[self.adUIView addSubview:fbNativeAdView];
Run Code Online (Sandbox Code Playgroud)

没有成功.

原生广告模板提供了有关如何获取的FBNativeAdView信息FBNativeAd.但是没有告诉如何FBNativeAdView在uiview中使用.

Gir*_*hai 1

FBNativeAdView现在它可以使用as中的添加框架来工作

fbNativeAdView.frame = CGRectMake(0, 0, 320, 120);
Run Code Online (Sandbox Code Playgroud)

现在原生广告模板还提供了有关如何FBNativeAdView在 uiview 中使用的信息。

可以通过更改其元素的值来自定义广告模板:

- (void)nativeAdDidLoad:(FBNativeAd *)nativeAd 
{
  FBNativeAdViewAttributes *attributes = [[FBNativeAdViewAttributes alloc] init];

  attributes.backgroundColor = [UIColor colorWithRed:0.9 green:0.9 blue:0.9 alpha:1];
  attributes.buttonColor = [UIColor colorWithRed:0.4 green:0.9 blue:0.8 alpha:1];
  attributes.buttonTitleColor = [UIColor whiteColor];

  FBNativeAdView *adView = [FBNativeAdView nativeAdViewWithNativeAd:nativeAd 
      withType:FBNativeAdViewTypeGenericHeight300 withAttributes:attributes];

  [self.view addSubview:adView];

  CGSize size = self.view.bounds.size;
  CGFloat xOffset = size.width / 2 - 160;
  CGFloat yOffset = (size.height > size.width) ? 100 : 20;
  adView.frame = CGRectMake(xOffset, yOffset, 320, 300);

  // Register the native ad view and its view controller with the native ad instance
  [nativeAd registerViewForInteraction:adView withViewController:self];
}
Run Code Online (Sandbox Code Playgroud)