如何设置UIView容器的动画以降低其高度?

时间:2013-09-11 02:02:48

标签: ios objective-c uiview

我希望在我的广告显示在底部的同时动画我的UIView容器的大小。当广告准备就绪时,我会从屏幕底部向上滑动广告。我希望我的UIView容器减少与广告滑动时相同的大小。

我在嵌入它的顶级UIViewController中为我的容器视图创建了一个outlet属性。

我的广告动画代码:

- (void)adViewDidReceiveAd:(GADBannerView *)view
{
    NSLog(@"Received Ad");

    [UIView animateWithDuration:1.0 animations:^ {
        view.frame = CGRectMake(0.0,
                                self.view.frame.size.height - view.frame.size.height,
                                view.frame.size.width,
                                view.frame.size.height);



        // This is where I think I would need to animate the container view.

    }];
}

如何减小容器视图的大小以匹配广告的大小?我需要容器留在同一个地方和所有东西,但是需要从底部取下一些高度。

1 个答案:

答案 0 :(得分:2)

这很简单:只需在动画横幅视图的同一块中为容器框架设置动画即可。它将是这样的:

[UIView animateWithDuration:1.0 animations:^ {

    view.frame = CGRectMake(0.0,
                            self.view.frame.size.height - view.frame.size.height,
                            view.frame.size.width,
                            view.frame.size.height);



     self.containerView.frame = CGRectMake( self.containerView.frame.origin.x,
                            self.containerView.frame.origin.y,
                            self.containerView.frame.size.width,
                            self.containerView.frame.size.height - view.frame.size.height);
}];

这段代码会将您的containerView减少为横幅的同一高度。你可以根据需要改变/适应。

编辑:如果您使用的是自动布局,则应为约束创建一个IBOutlet并为其设置动画,而不是框架本身。