2011-11-12 6 views
1

ビューとナビゲーションバーを備えたナビゲーションコントローラがあります。 Navbarとビューの間にAdView(AdWhirlを使用しています)を挿入します。 AdViewはスライドしてビューを下に移動する必要があります(ビューはオフスクリーンではなく、サイズを変更する必要があります)。広告を受け取ったときにAdViewをスライドさせます。

この場合、Three20と協力しています。

ありがとうございます!

答えて

3

私はThree20にあまり慣れていませんが、どのようにして普通にやるのか教えていただけます。 adWhirlDidReceiveAd:にこのコードを書きます(正しいデリゲートの設定とそのメソッドのオーバーライドに関するチュートリアルを読み、広告ビューがナビゲーションコントローラの現在のビューのサブビューであることを前提としています)。

したがって、adWhirlDidReceiveAd:では、あなたのコンテンツ(これはあなたのナビゲーションコントローラにあるビュー)をスライドさせ、受け取った広告内をスライドさせたいとします。

あなたはおそらく、あなたがスライドトランジションに広告が入るたびに行いませんので、最初の広告が既に同様で来ているかどうかを確認したい。

私はあなたがきれいでしたかなり確信している

- (void)adWhirlDidReceiveAd:(AdWhirlView *)adWhirlView_ { 


    CGSize adSize = [adWhirlView_ actualAdSize]; 
    CGRect newFrame = adWhirlView_.frame; 

    newFrame.size = adSize; 
    newFrame.origin.x = (self.view.bounds.size.width - adSize.width)/ 2; 

    //Draw offscreen so that it can slide in properly 
    CGRect tempFrame = newFrame; 
    tempFrame.origin.y = -newFrame.size.height; 
    adWhirlView_.frame = tempFrame; 

    [UIView animateWithDuration:1.0 animations:^{ 
     //Access frame of view controller in nav controller 
     CGRect viewFrame = [self.navigationController topViewController].view.frame; 

     // Decrease the height of the view by the height of the adwhirlView 
     viewFrame.size.height = [self.navigationController topViewController].view.frame.size.height - 
         adwhirlView_.frame.size.height; 
     // Shift view down to make room for the ad 
     viewFrame.origin.y = adwhirlView_.frame.size.height; 

     [self.navigationController topViewController].view.frame = viewFrame; 

     //Slide down the ad 
     adwhirlView_.frame = frame; 

    }]; 

} 

私もできる限り、私の思考を投げたかっただけでなく、私はそこに多くのコードを持っています。

+0

正当なものと思われます^^ これを試してください:) –