【问题标题】:Custom Transition Expanding UIViewController to the left向左扩展 UIViewController 的自定义转换
【发布时间】:2014-08-08 02:24:49
【问题描述】:

我正在尝试创建一个自定义动画来显示一个新的视图控制器。从视图控制器是一个视图控制器,它有两个嵌入 uiviewcontroller 右边是一个包含在导航控制器中的视图控制器,我正在尝试的动画的前半部分是使正确的容器扩展到离开全屏。

当我执行标准 UIView 动画块设置它的 frame = 它的父框架时,它首先通过向右扩展来立即设置大小(忽略动画),然后自行居中。

基本上我的问题是,是否有人建议如何强制视图控制器以适当的速度严格向左扩展?据我所知,缩放不起作用,因为它会拉伸视图而不保留纵横比。

【问题讨论】:

  • 只是跟进,似乎问题出在 UINavigationController 上。如果我将左侧容器向右扩展,它会按预期工作

标签: ios animation uiviewcontroller transition uiviewanimationtransition


【解决方案1】:

这可以通过为容器视图的大小或位置设置动画来完成。在测试中,我设置了容器视图,使左侧的视图具有宽度约束(IBOutlet、widthCon),而右侧的容器对左侧容器的长度间距约束为 0。扩展是在父视图控制器中使用此代码完成的,

- (void)expandRightView {

    [UIView animateWithDuration:2 animations:^{
        self.widthCon.constant = 0;
        [self.view layoutIfNeeded];
    }];
}

也可以通过将左容器向左移动来代替(leftCon是IBOutlet对左容器视图和主视图左边缘之间的约束),

- (void)expandRightView {

    [UIView animateWithDuration:2 animations:^{
        self.leftCon.constant = -self.leftContainerView.frame.size.width;
        [self.view layoutIfNeeded];
    }];
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-19
    • 1970-01-01
    • 2014-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多