2011-03-12 6 views
1

는이 같은 뷰 계층 구조를 가지고있다. 모두 자동 마스크 설정이 있습니다. 프로그래밍 방식으로 ADBannerView를 만들고 있습니다.UIView의 자동 크기 문제

이제 내 문제는 ADBannerView를 삽입 할 때 이미지, 레이블, 단추가 아래로 이동하고 탐색 컨트롤러가 축소되기를 바랍니다. 그러나 이것은 일어나지 않고 대신 ADBannerView가 이미지와 레이블 위에 배치됩니다.

아무도 나에게 설명 할 수 있습니까? 내가 여기서 잘못하고있는 것이 있습니까?

+0

iAds를 앱에 통합하는 방법에 대한 Ray Wenderlich의 튜토리얼에 대한 충분한 정보는 말할 수 없습니다. 그는이 문제를 직접 해결합니다. http://www.raywenderlich.com/1371/how-to-integrate-iad-into-your-iphone-app –

+0

아, 그리고 메모로 ... iAds를 앱. AdWhirl을 통합하는 것이 더 효과적입니다. AdWhirl을 사용하면 iAd, AdMob 및 다른 광고 프레임 워크를 동시에 사용할 수 있습니다. https://www.adwhirl.com/ 다른 사람들도 걱정하지 않지만 iAd와 AdMob을 같은 자리에 보유 할 수있는 능력은 좋습니다. iAd는 약 8 %의 시간 동안 광고를 제공하기 때문에 수익의 92 %를 놓치고 있습니다. 나머지는 AdMob으로 채워주세요! –

답변

3

ADBannerView를 넣을 때 "자동으로"아래로 이동하려면 다른보기로 둘러싸고 해당보기의 크기와 위치를 변경해야합니다. ADBannerView의 크기가 50 픽셀이라면 UIView를 50 픽셀 아래로 이동하고 높이를 50 픽셀로 줄이는 것이 좋습니다.

self.enclosingView가 이미지, 레이블 및 버튼을 묶는 데 사용할 새로운보기라고 가정하고이 애니메이션을 만들려는 것으로 가정하면 (일반적으로 훨씬 낫습니다) :

// Start the AdBannerView off of the top of the screen 
CGRect adFrame = self.bannerView.frame; 
adFrame.origin.x = 0.0; 
adFrame.origin.y = 0.0 - adFrame.size.height; 
self.bannerView.frame = adFrame; 

[UIView beginAnimations:@"Show Ads" context:nil]; 

// Animate the shrinking of the enclosing view 
CGRect enclosingFrame = self.enclosingView.frame; 
enclosingFrame.size.height -= self.bannerView.frame.size.height; 
enclosingFrame.origin.y += self.bannerView.frame.size.height; 
self.enclosingView.frame = enclosingFrame; 

// Animate the motion of the bannerView into view 
adFrame.origin.y = 0.0; 
self.bannerView.frame = adFrame; 

[UIView commitAnimations]; 
+0

감사합니다. 이 작업이 자동으로 수행되고 이것이 최후의 수단으로 고려되기를 바랬지 만 hoha가 지적했듯이 자동 크기 조정은 부모/자식 크기 조정으로 만 작동합니다. 그래도 문제없이 멋진 애니메이션 작업을 할 수 있습니다. :) – mirosval

1

자동 크기 조정 마스크는 형제 삽입/제거가 아닌 부모 프레임 변경시 크기 변경을 정의합니다. 프로그래밍 방식으로 해당 뷰의 프레임을 조정해야합니다. Kenny Wyland는 이미 통증이 적 으면 어떻게 달성 할 수 있는지 생각해 보았습니다. CGRectDivide 방법을 살펴보십시오. 두보기 사이에서 사용 가능한 공간을 쉽게 분할 할 수 있습니다.