自定义转换将UIViewController扩展到左侧

时间:2014-06-17 22:50:21

标签: ios animation uiviewcontroller transition uiviewanimationtransition

我正在尝试创建自定义动画以将新视图控制器显示为显示。视图控制器是一个视图控制器,有两个嵌入uiviewcontrollers enter image description here右边的一个是一个封装在导航控制器中的视图控制器,我正在尝试的动画的前半部分是使正确的容器扩展向左转全屏。

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

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

1 个答案:

答案 0 :(得分:0)

这可以通过动画容器视图的大小或位置来完成。在测试中,我设置了容器视图,使得左侧容器具有宽度约束(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];
    }];
}