2

所以我在 UITableView 的顶部添加了一个 iAd 单元。我正在屏幕外创建广告单元,然后按照您的预期将其动画化。

当广告出现时,我想同时以相同的速度为表格的 frame 和 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];

如果我只为单元格移动的框架设置动画,这很糟糕。我希望这能尽可能少地扰乱 UI。

有解决方法吗?

4

1 回答 1

1

与其同时调整表格视图的大小和滚动,不如尝试为广告的滑入设置动画,而不调整表格视图的大小。然后,在完成块中,设置表格视图框架和 contentOffset 而不对其进行动画处理。

这应该有你想要的效果,但是在动画期间,表格视图实际上只是被广告部分覆盖。

于 2013-03-07T19:16:05.660 回答