2011-11-03 42 views
5

Tôi có mã sau cho phép tôi định vị nó ở trên cùng. Tôi muốn nó xuất hiện ở phía dưới.Làm cách nào để biểu ngữ iAd xuất hiện ở cuối màn hình?

adView = [[ADBannerView alloc] initWithFrame:CGRectZero]; 
adView.frame = CGRectOffset(adView.frame, 0, -50); 
adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifierPortrait]; 
adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait; 
[self.view addSubview:adView]; 

Mọi hỗ trợ sẽ được đánh giá cao.

Trả lời

19

Update- @ larsacus chỉ ra này là dành cho 4.2 trở lên:

adView = [[ADBannerView alloc] initWithFrame:CGRectZero]; 
adView.requiredContentSizeIdentifiers = [NSSet setWithObject:ADBannerContentSizeIdentifierPortrait]; 
adView.currentContentSizeIdentifier = ADBannerContentSizeIdentifierPortrait; 
CGRect adFrame = adView.frame; 
adFrame.origin.y = self.view.frame.size.height-adView.frame.size.height; 
adView.frame = adFrame; 
[self.view addSubview:adView]; 

Shown working in simulator

+1

Lưu ý rằng thao tác này sẽ chỉ hoạt động đối với iOS 4.2+ vì 'ADBannerContentSizeIdentifierPortrait' và' ADBannerContentSizeIdentifierLandscape' đều được thêm vào 4.2. Chỉ cần một đầu lên. – larsacus

+0

cảm ơn câu trả lời chi tiết Chris – jini

+0

@jini Chris không trả lời câu hỏi –

0

Đây là những gì giúp tôi di chuyển nhìn xuống đáy:

adFrame.origin.y = self.view.frame.size.height;

adView.autoresizingMask = UIViewAutoresizingFlexibleTopMargin;

+0

Điều này sẽ đẩy chế độ xem quảng cáo bên dưới màn hình trong nhiều trường hợp. Có vẻ như vấn đề của bạn nhiều hơn phải làm với xoay màn hình hoặc bạn đang sử dụng trình tạo giao diện và các chế độ xem không được thiết lập chính xác. Bạn đang sử dụng một XIB cho bộ điều khiển xem của bạn? –

+0

Ồ! Bạn nói đúng, tôi nhận thấy có nhiều trường hợp, nhưng tôi chưa sửa nó. Tôi không có bất kỳ XIB, đây là một mã cũ và tôi đang cập nhật nó. Các quan điểm KHÔNG được thiết lập chính xác ở tất cả và đó là một mớ hỗn độn, và tôi không muốn dành nhiều thời gian cho việc này. Ứng dụng của tôi chỉ có một hướng, vì vậy không có xoay vòng, tất cả những gì tôi cần là đặt nó ở dưới cùng. Tôi đã dán toàn bộ mã (của quảng cáo) tại đây, để tránh hỏi cùng một câu hỏi nhiều lần, nhưng tôi có thể đăng lại nếu bạn cần: http://pastebin.com/k73cyL7R – Neeku

+0

Không chắc chắn cách bạn nhận ra đã tạo ra nhiều trường hợp, nhưng vấn đề là tôi đã có nó trong phương thức 'loadView' được gọi là phương thức' createAdView' trước khung nhìn chính là tạo. Sử dụng bộ hẹn giờ vấn đề được giải quyết. – Neeku

2

Câu trả lời đầu tiên của tôi về SO :)

Tại sao không sử dụng thuộc tính 'trung tâm' của adView? Nếu kích thước của giao diện chính của bạn là viewWidth và viewHeight:

//at the bottom of view,centered 
adView.center=CGPointMake(viewWidth/2, viewHeight-adView.frame.size.height); 

//at the top, right corner ;) 
adView.center=CGPointMake(viewWidth-adView.frame.size.width/2, adView.frame.size.height); 

Cheers

+0

Tôi đã thử một cái gì đó tương tự nhưng không chắc chắn nếu Apple sẽ chấp nhận buộc kích thước để một cái gì đó khác với mặc định. Có ai có kinh nghiệm tải lên ứng dụng có biểu ngữ iAd đã được định lại kích thước không? – Alexandros

0

Sử dụng Storyboards, sau đó, bỏ qua rằng các tiêu chuẩn iAd Banner Xem không đạt được các cạnh của màn hình. Đặt biểu ngữ iAd làm trung tâm, sau đó di chuyển nó đến gần như dưới cùng như bạn muốn. Không có cài đặt chiều rộng nào khác (không có cài đặt đầu hoặc cuối)

Mỏ nhìn ok với 8 pixel từ dưới cùng của trình giám sát, nhưng tôi đã đi với - pixel giữa biểu ngữ iAd và Chế độ xem UIController.

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