2

そこで、UITableViewの上部にiAdユニットを追加します。画面外で広告ユニットを作成し、想定どおりにアニメーション化しています。

広告が表示されたら、テーブルのフレームとcontentOffsetを同じ速度で同時にアニメーション化して、テーブルが静止しているように見せたいのですが、実際には広告の高さだけ縮小し、コンテンツを上にスライドさせます。同時に。

両方を一緒にアニメーション化すると、それらは異なる速度で発生するように見え、広告が表示されるとすべてがひどくジャンプします。

[UIView animateWithDuration:0.05 delay:0 options:UIViewAnimationOptionCurveEaseInOut
                     animations:^{
                           [self.table setFrame: CGRectMake(tableFrame.origin.x,tableFrame.origin.y+50,tableFrame.size.width,tableFrame.size.height-[self getBannerHeight])];
                           [self.table setContentOffset:CGPointMake(self.table.contentOffset.x,self.table.contentOffset.y+50) animated:NO];
                           [self.adBannerView setFrame:CGRectMake(0,0,self.adBannerView.frame.size.width,self.adBannerView.frame.size.height)];
                     }
                     completion:nil];

フレームだけをアニメートすると、セルが移動します。これはimoを吸います。UIの混乱をできるだけ少なくしたいのですが。

回避策はありますか?

4

1 に答える 1

1

テーブルビューのサイズ変更とスクロールを同時に行うのではなく、テーブルビューのサイズを変更せずに、広告のスライドインをアニメーション化してみてください。次に、完了ブロックで、アニメーション化せずにテーブルビューフレームとcontentOffsetを設定します。

これはあなたが望む効果をもたらすはずですが、アニメーションの間、テーブルビューは実際には広告によって部分的に覆われるだけです。

于 2013-03-07T19:16:05.660 に答える