例子: 比如
SDPhotoBrowser库
类似微信图片浏览,点击放大之后,在点击一下缩小至原来的大小。这里他的做法就是:利用一个临时
tempView, 那么等缩小的动画完成,从当前界面移除tempView。
好了,坐标转换呢?
这个说的更清楚一点:
// 将像素point由point所在视图转换到目标视图view中,返回在目标视图view中的像素值
- (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view;
// 将像素point从view中转换到当前视图中,返回在当前视图中的像素值
- (CGPoint)convertPoint:(CGPoint)point fromView:(UIView *)view;
--------------------------------------------------------------
// 将rect由rect所在视图转换到目标视图view中,返回在目标视图view中的rect
- (CGRect)convertRect:(CGRect)rect toView:(UIView *)view;
// 将rect从view中转换到当前视图中,返回在当前视图中的rect
- (CGRect)convertRect:(CGRect)rect fromView:(UIView *)view;
--------------------------------------------------------------
//默认情况下,frame是以父控件左上角为坐标原点 // 转换坐标系 CGRect newFrame = [from convertRect:from.bounds toView:window]; //计算form 这个控件在window中的位置和尺寸 或者:
CGRect newFrame = [from.superview convertRect:from.frame toView:window];