首页 文章

如何让我的控制器过渡动画在纵向和横向都能正常工作?

提问于
浏览
0

我有一个UICollectionView单元格 . 当用户选择它时,我试图将自定义导航控制器动画做到下一个viewController视图 .

基本上我是

  • 将新视图控制器的视图添加为子视图

  • 设置新视图的框架尽可能小,(即0.01,0.01)

  • 将新视图框的中心设置为所选collectionView单元格的中心

  • 然后运行一个动画块,将新视图的帧更改为[[UIScreen mainScreen] bounds] .

  • ,最后onComplete,推送新的viewController

所以我可以看到动画从单元格框架内开始(虽然它不是很中心),并且它会扩展到屏幕纵向尺寸,即使单元框架位于屏幕的底角;这很好 .

问题出在横向模式,尺寸仍在扩展到纵向规格 . 自旋转以来,[[UIScreen mainScreen]边界]的值是否应该更改?

这是代码

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];
 }];

1 回答

  • 0

    [[UIScreen mainScreen] bounds]与方向无关 . 请考虑使用superview的框架 .

相关问题