Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法集成Mopub';将本机广告添加到iOS的iTableView中_Ios_Uitableview_Sdk_Mopub - Fatal编程技术网

无法集成Mopub';将本机广告添加到iOS的iTableView中

无法集成Mopub';将本机广告添加到iOS的iTableView中,ios,uitableview,sdk,mopub,Ios,Uitableview,Sdk,Mopub,我正在尝试将Mopub的本地广告集成到iOS的UITableView中,但它没有加载广告 控制台显示: MOPUB: Received data from MoPub to construct native ad. MOPUB: Looking for custom event class named MPMoPubNativeCustomEvent. MOPUB: Successfully loaded native ad. 但是我在我的tableview中没有看到任何广告 下面是

我正在尝试将Mopub的本地广告集成到iOS的UITableView中,但它没有加载广告

控制台显示:

MOPUB: Received data from MoPub to construct native ad.     
MOPUB: Looking for custom event class named MPMoPubNativeCustomEvent.
MOPUB: Successfully loaded native ad.
但是我在我的tableview中没有看到任何广告

下面是我用来集成mopub的测试视图控制器:

import UIKit
import MoPub


class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, MPTableViewAdPlacerDelegate {

    @IBOutlet weak var tableView: UITableView!
    let adUnitID = "my ad unit id"
    var placer:MPTableViewAdPlacer?
    var dataSource:[String]?

    override func viewDidLoad() {
        super.viewDidLoad()

        self.tableView.mp_setDelegate(self)
        self.tableView.mp_setDataSource(self)

        self.tableView.register(UINib(nibName: "customCell", bundle: Bundle(for: customCell.self)), forCellReuseIdentifier: "cell")

        self.dataSource = [String]()

        for index in 0...20{
            self.dataSource?.append("My Index: \(index)")
        }

        self.setupAdPlacer()
        self.tableView.mp_reloadData()
    }

    func setupAdPlacer(){

        let targeting: MPNativeAdRequestTargeting! = MPNativeAdRequestTargeting()
        targeting.desiredAssets = Set([kAdIconImageKey, kAdCTATextKey, kAdTextKey, kAdTitleKey])

        let positioning:MPAdPositioning = MPAdPositioning()
        let settings:MPStaticNativeAdRendererSettings = MPStaticNativeAdRendererSettings()

        settings.renderingViewClass = NativeAdCell.self
        settings.viewSizeHandler = {(maxWidth: CGFloat) -> CGSize in
            let size:CGSize = CGSize(width: maxWidth, height: 333)
            return size
        }

        let config:MPNativeAdRendererConfiguration = MPStaticNativeAdRenderer.rendererConfiguration(with: settings)
        config.supportedCustomEvents = ["MPMoPubNativeCustomEvent"]

        self.placer = MPTableViewAdPlacer(tableView: self.tableView, viewController: self, adPositioning: positioning, rendererConfigurations: [config])
        self.placer?.delegate = self
        self.placer?.loadAds(forAdUnitID: adUnitID, targeting: targeting)
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return (self.dataSource?.count)!
    }



    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        var cell = tableView.mp_dequeueReusableCell(withIdentifier: "cell", for: indexPath) as? customCell

        if cell == nil {
            cell =  customCell()
        }

        let data = self.dataSource?[indexPath.row]
        cell?.myTextLabel?.text = data

        return cell! 
    }
}
我的NativeAdCell课程:

import UIKit
import MoPub

class NativeAdCell: UITableViewCell, MPNativeAdRendering {

    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }

    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)

        // Configure the view for the selected state
    }

}

如果您使用的是xib UITableviewcell,则必须使用此方法将UITableviewcell注册到本机ads

静态函数niforad()->UINib! {

让adscell:UINib=UINib(nibName:“adsCustomTableViewCell”,bundle:nil)

返回adscell

}

我的本机adsCustomTableViewCell ads实现:

扩展adsCustomTableViewCell:MPNativeArdering{

func nativeMainTextLabel() -> UILabel! {


    return self.descriptionLabel

}
func nativeIconImageView() -> UIImageView! {

    return self.adsImage
}
func nativeTitleTextLabel() -> UILabel! {

    return self.titleLabel

}

func nativeCallToActionTextLabel() -> UILabel! {

    return self.LearnMoreLabel
}

static func nibForAd() -> UINib! {
    let  adscell:UINib = UINib(nibName: "adsCustomTableViewCell", bundle: nil)
    return  adscell
}

}

您好,您找到解决方案了吗??我面临着同样的问题,这节省了我很多时间。谢谢!