Ios 从UIViewControllerTransitioningDelegate旋转后,如何跟踪UIView的位置?

Ios 从UIViewControllerTransitioningDelegate旋转后,如何跟踪UIView的位置?,ios,Ios,我正在处理视图控制器转换(使用符合UIViewControllerTransitioningDelegate的专用对象),其中显示的视图从显示视图中的子视图缩小。当新视图被取消时,它将收缩回同一子视图。不太难——但当用户在显示的视图上旋转设备时(或者更糟,如果由于新的iPad多任务而调整了窗口大小),我不知道该怎么办。如何计算要缩回到的子视图的CGRect?我想我可能想在我的转换对象中保留对子视图的引用,但是当子视图本身在子视图中时,这有多大帮助呢?(如果没有整个视图层次结构,我无法使用conv

我正在处理视图控制器转换(使用符合
UIViewControllerTransitioningDelegate
的专用对象),其中显示的视图从显示视图中的子视图缩小。当新视图被取消时,它将收缩回同一子视图。不太难——但当用户在显示的视图上旋转设备时(或者更糟,如果由于新的iPad多任务而调整了窗口大小),我不知道该怎么办。如何计算要缩回到的子视图的
CGRect
?我想我可能想在我的转换对象中保留对子视图的引用,但是当子视图本身在子视图中时,这有多大帮助呢?(如果没有整个视图层次结构,我无法使用
convertRect:FromView:
?)进行计算)


作为参考,iOS9中的Apple Photos应用程序正是我想要实现的。从缩略图中轻按照片,可将其放大至全屏。旋转您的设备,然后点击后退按钮,全屏照片将缩小回缩略图应位于旋转视图中的正确位置。

使用返回CGRect的方法制定协议:

@protocol ZoomingTransitionFromViewDelegate <NSObject>
-(CGRect)rectForZoomingTransition;
@end
@protocol ZoomingTransitionFromViewDelegate
-(CGRect)用于缩放转换的RECT;
@结束
使演示视图控制器采用此协议,并在初始化期间将演示视图控制器传递给
UIViewControllerTransitioningDelegate
。然后,呈现视图控制器的任务是计算视图的rect

解雇期间,请确保在调用
rectForZoomingTransition
之前,将
toViewController
frame
设置为
containerView
frame
,以便视图可以根据任何旋转或窗口更改自行调整大小