Web sitemde heryerde spritekit oyunuma afişler eklemeye yönelik öğreticiler için arıyorum. Mesela şuna baktım: Swift SpriteKit iAd ama yeni hızlı 2 ve hızlı 1'e bağlı olarak probaly hatalarım var. Fakat spritekit oyunuma IAD eklemek için ne yapacağınızı açıklayabilir misiniz? Şimdiden teşekkür ederim.Spritekit Destekleme iAd
-1
A
cevap
0
Bu kodu GameViewController'ınızda olduğundan emin olun. Bunu yeni test ettim ve manzara ve portre modu için çalışıyor.
class GameViewController: UIViewController, ADBannerViewDelegate {
//--------------------
//-----iAd Banner-----
//--------------------
var SH = UIScreen.mainScreen().bounds.height
let transition = SKTransition.fadeWithDuration(0)
var UIiAd: ADBannerView = ADBannerView()
override func viewWillAppear(animated: Bool) {
let BV = UIiAd.bounds.height
UIiAd.delegate = self
UIiAd.frame = CGRectMake(0, SH + BV, 0, 0)
self.view.addSubview(UIiAd)
}
override func viewWillDisappear(animated: Bool) {
UIiAd.delegate = nil
UIiAd.removeFromSuperview()
}
func bannerViewDidLoadAd(banner: ADBannerView!) {
UIView.beginAnimations(nil, context: nil)
UIView.setAnimationDuration(0.5) // Time it takes the animation to complete
UIiAd.alpha = 1 // Fade in the animation
UIView.commitAnimations()
}
func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) {
UIView.beginAnimations(nil, context: nil)
UIView.setAnimationDuration(0.5)
UIiAd.alpha = 0
UIView.commitAnimations()
}
func showBannerAd() {
UIiAd.hidden = false
let BV = UIiAd.bounds.height
UIView.beginAnimations(nil, context: nil)
UIView.setAnimationDuration(0.5) // Time it takes the animation to complete
UIiAd.frame = CGRectMake(0, SH - BV, UIScreen.mainScreen().bounds.width, 0)
UIView.commitAnimations()
}
func hideBannerAd() {
UIiAd.hidden = true
let BV = UIiAd.bounds.height
UIView.beginAnimations(nil, context: nil)
UIView.setAnimationDuration(0.5) // Time it takes the animation to complete
UIiAd.frame = CGRectMake(0, SH + BV, UIScreen.mainScreen().bounds.width, 0) //Beginning position of the ad
UIView.commitAnimations()
}
//--------------------
//-----View Loads-----
//--------------------
override func viewDidLoad() {
super.viewDidLoad()
//iAd Control
self.UIiAd.hidden = true
self.UIiAd.alpha = 0
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(GameViewController.hideBannerAd), name: "hideadsID", object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(GameViewController.showBannerAd), name: "showadsID", object: nil)
}
Aşağıdakileri, sınıf bildirimlerinizin dışına ekleyin. Hangi sınıfa girdiğiniz önemli değil, küresel olduğu sürece onlara herhangi bir oyun sahnesinden erişebilirsiniz.
//-------------
//-----Ads-----
//-------------
func showAds() {
NSNotificationCenter.defaultCenter().postNotificationName("showadsID", object: nil)
}
func hideAds() {
NSNotificationCenter.defaultCenter().postNotificationName("hideadsID", object: nil)
}
Ve sadece "showAds()" fonksiyonu veya "hideAds()" dediğimiz, belirli sahnenin veya her reklamları göstermek istediğinizde sonra bunları gizlemek için.
Bunu okumak için ilginç bulabilirsiniz: https://developer.apple.com/news/?id=01152016a – Whirlwind
Hey Dün yardımlarınız için tekrar teşekkürler. Bunun iAd'larla gerçekten emin misiniz? Bunu SO'da bahseden bir sürü insan gördüm. Şimdiye kadar haberler bu konuda çok belirsiz. Bazıları, yalnızca kendi uygulamalarını tanıtmak isteyen geliştiricileri etkilediğini söylüyor. Bazıları API'ler de dahil olmak üzere tümünün kapatıldığını söylüyor. Bazıları Haziran ayında otomatik bir servis aldığımızı söylüyor. Aslında şu anda Apple'ın sadece reklam göstermek için iAd’ları kullanan yeni uygulamaları reddedeceğini düşünüyoruz. (Yeni reklamlar oluşturmak için uygulama ağını kullanmamak). – crashoverride777
iAD tamamen kapanıyor. – Loanb222