用动画呈现视图

Posted

技术标签:

【中文标题】用动画呈现视图【英文标题】:Present a view with animation 【发布时间】:2013-06-18 16:01:24 【问题描述】:

我不想像现在那样做self.view = view;,而是想用动画呈现这个视图。它不是一个完整的视图控制器,而只是一个视图,我只是在单击按钮时用此视图替换当前视图。

有没有办法做到这一点动画

提前致谢。

【问题讨论】:

【参考方案1】:

尝试类似:

UIView *newView = ...;
// new view is added as a subview somewhere

newView.alpha = 0;

[UIView animateWithDuration:1
                 animations:^
    newView.alpha = 1;
];

这将使视图淡入。您还可以查看animateWithDuration:delay:options:animations:completion:,它提供了其他动画选项。或transitionFromView:toView:duration:options:completion:

【讨论】:

有没有办法做这样的事情,但滑入?就像故事板中的转场一样。 当然,您可以将初始帧设置为屏幕外(上面的 alpha 设置为 0),并在动画块中将帧设置为屏幕上的最终位置(alpha 设置为1 以上)。 啊...使用view.frame = CGRectMake(0,0,0,0); 然后view.frame = CGRectMake(0,0,320,480); 类似的东西? 这似乎有效,我应该在哪里添加东西到视图中,标签和按钮在动画完成之前出现。 将帧大小设置为 0, 0 您需要小心一点,因为自动调整大小/自动布局规则将发挥作用,因此您需要确保它们是正确的。您可能还需要在视图上设置clipsToBounds 以防止子视图超出其范围。

以上是关于用动画呈现视图的主要内容,如果未能解决你的问题,请参考以下文章

如何自定义模态视图控制器呈现动画?

为啥我的 UIBarButtonItem 在呈现视图控制器时会进行动画滑入?

我怎样才能呈现一个模态视图控制器,并带有默认的关闭动画?

在没有动画的情况下关闭视图控制器后立即呈现视图控制器

嵌入到导航控制器中的动画根视图控制器以模态方式呈现

呈现模态视图控制器时,核心动画层表现得很奇怪。 CATransform3D 问题