2015-06-18 14 views
5

Đây là mã tôi đang sử dụng:Ẩn iAd ADBannerView trong Swift khi quảng cáo không tải - không có đại biểu hoặc đại biểu không thực hiện didFailToReceiveAdWithError

var bannerView = ADBannerView() 
self.canDisplayBannerAds = true 

//show ad banner if an ad loads 
func bannerViewDidLoadAd(banner: ADBannerView!) 
{bannerView.hidden = false} 

//hide ad banner if the ad fails to load 
func bannerViewFailsToLoadAd(banner: ADBannerView!,didFailToReceiveAdWithError error: NSError!) 
{bannerView.hidden = true 
println("failed to receive ad")} 

Khi tôi đặt iAd tỷ lệ lấp đầy là 0% không có gì được in và tôi nhận ra điều này từ giao diện điều khiển:

ADBannerView: Unhandled error (no delegate or delegate does not implement didFailToReceiveAdWithError:): Error Domain=ADErrorDomain Code=5 "The operation couldn’t be completed. Banner view is visible but does not have content" UserInfo=0x7fd3fd3335e0 {ADInternalErrorCode=5, NSLocalizedFailureReason=Banner view is visible but does not have content, ADInternalErrorDomain=ADErrorDomain}

Trả lời

4

phương pháp đại biểu sẽ không được gọi khi sử dụng self.canDisplayBannerAds = true. Bạn cần tự tạo một số ADBannerView và đặt số delegate của mình để gọi các phương thức ủy nhiệm, ví dụ: bannerView.delegate = self.

self.canDisplayBannerAds = truekhông có rắc rối cách triển khai biểu ngữ iAd. Nó sẽ tạo ra một ADBannerView cho bạn, hiển thị nó nếu nó nhận được một quảng cáo và ẩn nó nếu nó không nhận được một quảng cáo. Không cần triển khai phương thức ủy nhiệm khi triển khai biểu ngữ iAd của bạn theo cách này.

Vì vậy, bạn có hai tùy chọn, hãy xóa var bannerView = ADBannerView() và sử dụng biểu ngữ iAd self.canDisplayBannerAds = true cung cấp hoặc xóa self.canDisplayBannerAds = true và hoàn tất triển khai ADBannerView của riêng bạn.

Nếu bạn quyết định triển khai ADBannerView riêng của mình, hãy kiểm tra câu trả lời của tôi here, chỉ cần bỏ qua triển khai AdMob.

+0

@Daniel_Storm Ok. Chỉ cần để tôi hiểu chính xác, bạn có thể xác nhận nếu tôi chỉ sử dụng self.canDisplayBannerAds = true phần biểu ngữ sẽ ẩn nếu nó không tải được? – dwinnbrown

+0

@dwinnbrown Có, khi sử dụng 'self.canDisplayBannerAds = true' nếu biểu ngữ không thể nhận quảng cáo từ mạng iAd, nó sẽ tự di chuyển khỏi màn hình. Đặt tỷ lệ lấp đầy thành 50% trong cài đặt trên thiết bị của bạn và xem màn hình 'ADBannerView' và ẩn khi nhận và không nhận được quảng cáo. –

+0

Tôi đã thử nhưng tôi vẫn còn lại với một hình chữ nhật màu trắng mà khi khai thác chỉ nổi bật màu xám – dwinnbrown

Các vấn đề liên quan