我正在尝试创建自定义动画以将新视图控制器显示为显示。视图控制器是一个视图控制器,有两个嵌入uiviewcontrollers 右边的一个是一个封装在导航控制器中的视图控制器,我正在尝试的动画的前半部分是使正确的容器扩展向左转全屏。
当我执行标准UIView动画块设置其frame =其父帧时,它首先通过向右扩展来设置大小(忽略动画),然后居中。
基本上我的问题是,是否有人建议如何强制视图控制器以适当的速度严格向左扩展?根据我的知识,缩放并不起作用,因为它会拉伸视图而不保留纵横比。
答案 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];
}];
}