我有一个 UICollectionView 单元格。当用户选择它时,我正在尝试对下一个 viewController 视图进行自定义导航控制器动画。
基本上我是
- 将新视图控制器的视图添加为子视图
- 将新视图的框架设置为尽可能小,(即0.01、0.01)
- 将新视图框架的中心设置为所选 collectionView 单元格的中心
- 然后运行一个动画块,将新视图的帧更改为等于 [[UIScreen mainScreen] bounds]。
- 最后 onComplete,推送新的 viewController
所以我可以看到动画从单元格框架内开始(虽然它不是完全居中),并且它扩展到屏幕纵向尺寸,即使单元格框架位于屏幕的底角;这很好。
问题在于横向模式,尺寸仍在扩展到纵向规格。自旋转以来, [[UIScreen mainScreen] bounds] 的值不应该发生变化吗?
这是代码
DetailsViewController *details = [[DetailsViewController alloc] initWithItem:item];
[[self view] addSubview:details.view];
details.view.frame=CGRectMake(0, 0, 0.01, 0.01);
details.view.center = cell.center;
[UIView animateWithDuration:[duration floatValue] animations:^{
details.view.frame = [[UIScreen mainScreen] bounds];
}
completion:^(BOOL finished){
[[self navigationController] pushViewController:details animated:NO];
}];