Ios UICollectionView集成中的HeyZap本地广告
我正在尝试将HeyZap Native Ads中介集成到我的UICollectionView中。 我使用的是用IB构建的单元格,但当我尝试将nativeAd.wrapperView分配给我自己的单元格中的wrapperView时,它不会响应任何点击或手势。 这是我的密码:Ios UICollectionView集成中的HeyZap本地广告,ios,uicollectionview,uicollectionviewcell,native-ads,heyzap,Ios,Uicollectionview,Uicollectionviewcell,Native Ads,Heyzap,我正在尝试将HeyZap Native Ads中介集成到我的UICollectionView中。 我使用的是用IB构建的单元格,但当我尝试将nativeAd.wrapperView分配给我自己的单元格中的wrapperView时,它不会响应任何点击或手势。 这是我的密码: cell.hzNativeAd = ...; //Here I assign HZMediatedNativeAd to my cell property cell.hzNativeAd.presentingViewContr
cell.hzNativeAd = ...; //Here I assign HZMediatedNativeAd to my cell property
cell.hzNativeAd.presentingViewController = self;
cell.hzNativeAd.shouldShowFacebookAdChoicesView = NO;
//Saving frame, because when I assign HeyZap wrapperView to my UIView frame is 0
CGRect wrapperViewFrame = cell.wrapperView.frame;
cell.wrapperView = cell.hzNativeAd.wrapperView;
cell.wrapperView.frame = wrapperViewFrame;
/*Assigning all labels and images
...
...
...
*/
//Registering Views with HZMediatedNativeAdViewRegisterer
[cell.hzNativeAd registerViews:^(id<HZMediatedNativeAdViewRegisterer>registerer) {
[registerer registerTitleView:cell.titleLabel tappable:YES];
[registerer registerBodyView:cell.descriptionLabel tappable:YES];
[registerer registerCallToActionView:cell.actionButton];
[registerer registerIconView:cell.imageView tappable:YES];
[registerer registerCoverImageView:cell.coverImageView tappable:YES];
cell.hznativeead=//在这里,我将HzMediatedNativeHead分配给我的cell属性
cell.hznativeead.presentingViewController=self;
cell.hznaviead.shouldShowFacebookAdChoicesView=否;
//正在保存帧,因为当我将HeyZap wrapperView指定给UIView帧时,该帧为0
CGRect wrapperViewFrame=cell.wrapperView.frame;
cell.wrapperView=cell.hznativeead.wrapperView;
cell.wrapperView.frame=wrapperViewFrame;
/*指定所有标签和图像
...
...
...
*/
//向HzMediatedNativeReadViewRegisterer注册视图
[cell.hznativeead registerViews:^(idregister){
[注册表人注册表项视图:cell.titleLabel tappable:是];
[RegisterRegisterBodyView:cell.descriptionLabel tappable:YES];
[RegisterRegisterCallToActionView:cell.actionButton];
[RegisterRegistericonView:cell.imageView tappable:YES];
[RegisterRegisterOverImageView:cell.coverImageView tappable:YES];
从HeyZap文档()中,我可以找到如何以编程方式进行测试。但在iPad上进行测试时,这样做会给我带来非常糟糕的结果。我创建视图,而不是添加约束,然后注册这些视图,然后在准备重用时删除所有视图-所有这些都需要时间,而且我在iPad上有很多延迟。HeyZap支持只是不回复
所以可能有人也遇到了这个问题……或者我只是在这样分配wrapperView时做错了什么
感谢您的帮助!我是Heyzap的iOS工程师。首先,让我为本机广告集成的复杂性道歉。在广告网络之间创建一致的接口确实很困难,而且由于AdMob需要包装视图和注册视图,它至少必须如此复杂。无论如何,我认为这里有一些问题您代码中的ems:
cell.wrapperView=cell.hznativeead.wrapperView;
无法正常工作。这只是获取单元格的wrapperView
指针并更改其指向的内容,但它并没有更改单元格的实际子视图。您需要在某个点将Heyzap包装视图实际添加到视图层次结构中,以使其恢复我可能会这样做:
[cell.wrapperView removeFromSuperview]; // Temporarily remove your wrapper view from the view hierarchy, since when you load a new cell from a storyboard, it'll be a subview of the `contentView` property.
cell.hzNativeAd.wrapperView.frame = cell.wrapperView.frame;
[cell.contentView addSubview: cell.hzNativeAd.wrapperView];
[cell.hzNativeAd.wrapperView addSubview: cell.wrapperView];
wrapperView
属性重命名为其他属性,以消除它与Heyzap属性之间的歧义)
就prepareforeuse
而言,您应该能够做到以下几点:
[self.wrapperView removeFromSuperview];
[cell.hznativeead.wrapperView removeFromSuperview];
nil
out您的本地广告参考:self.hznativeead=nil;
[super prepareforeuse];
如果您还有任何问题,请告诉我;如果有必要,我可以与您进行Skype聊天。我是Heyzap的iOS工程师。首先,我要为本机广告集成的复杂性道歉,在广告网络之间创建一致的接口确实很困难,而且由于AdMob需要包装器视图和注册视图,因此我t必须至少有那么复杂。无论如何,我认为您的代码中存在以下问题:
cell.wrapperView=cell.hznativeead.wrapperView;
无法正常工作。这只是获取单元格的wrapperView
指针并更改其指向的内容,但它并没有更改单元格的实际子视图。您需要在某个点将Heyzap包装视图实际添加到视图层次结构中,以使其恢复我可能会这样做:
[cell.wrapperView removeFromSuperview]; // Temporarily remove your wrapper view from the view hierarchy, since when you load a new cell from a storyboard, it'll be a subview of the `contentView` property.
cell.hzNativeAd.wrapperView.frame = cell.wrapperView.frame;
[cell.contentView addSubview: cell.hzNativeAd.wrapperView];
[cell.hzNativeAd.wrapperView addSubview: cell.wrapperView];
wrapperView
属性重命名为其他属性,以消除它与Heyzap属性之间的歧义)
就prepareforeuse
而言,您应该能够做到以下几点:
[self.wrapperView removeFromSuperview];
[cell.hznativeead.wrapperView removeFromSuperview];
nil
out您的本地广告参考:self.hznativeead=nil;
[super prepareforeuse];