如何将admob横幅添加到messagekit的messageviewcontroller中?
我尝试过。广告已加载,但不可见。
我想将横幅添加到视图顶部。
请帮助。
final class ChatViewController: MessagesViewController, MessagesDataSource {
override func viewDidLoad() {
messagesCollectionView = MessagesCollectionView(frame: .zero, collectionViewLayout: CustomMessagesFlowLayout())
messagesCollectionView.register(CustomMessageKitCell.self)
// In this case, we instantiate the banner with desired ad size.
bannerView = GADBannerView(adSize: kGADAdSizeBanner)
bannerView.adUnitID = "ca-app-pub-40..."
bannerView.rootViewController = self
bannerView.load(GADRequest())
bannerView.delegate = self
addBannerViewToView(bannerView)
...
}
var bannerView: GADBannerView!
func addBannerViewToView(_ bannerView: GADBannerView) {
bannerView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(bannerView)
view.addConstraints(
[NSLayoutConstraint(item: bannerView,
attribute: .top,
relatedBy: .equal,
toItem: view.safeAreaLayoutGuide,
attribute: .top,
multiplier: 1,
constant: 0),
NSLayoutConstraint(item: bannerView,
attribute: .centerX,
relatedBy: .equal,
toItem: view,
attribute: .centerX,
multiplier: 1,
constant: 0)
])
}
...
}
答案 0 :(得分:0)
在添加任何子视图之前,您需要先调用super.viewDidLoad()
(我什至都没有调用它,但是它可能位于...
中结束)。 MessageKit使用viewDidLoad
将MessagesCollectionView添加到视图层次结构中,因此,如果在此后调用super
,则标题视图将位于MessagesCollectionView的下面。在这种情况下,由于您要使用自定义布局实例化MessagesCollectionView,因此您需要在实例化该视图之后但在添加任何子视图之前调用super
:
override func viewDidLoad() {
messagesCollectionView = MessagesCollectionView(frame: .zero, collectionViewLayout: CustomMessagesFlowLayout())
super.viewDidLoad() // <-- Add this
messagesCollectionView.register(CustomMessageKitCell.self)
// In this case, we instantiate the banner with desired ad size.
bannerView = GADBannerView(adSize: kGADAdSizeBanner)
bannerView.adUnitID = "ca-app-pub-40..."
bannerView.rootViewController = self
bannerView.load(GADRequest())
bannerView.delegate = self
addBannerViewToView(bannerView)
...
}