iOS 不同视图之间的坐标转换

作者: 远方的枫叶 | 来源:发表于2016-06-28 15:07 被阅读3255次

API解释

1、将view_A视图上的点坐标point转换成目标视图view_B上的点坐标,返回在目标视图view_B上的点坐标。

- (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view;
//栗子
 [view_A convertRect:view_A上的坐标 toView:view_B];

2、将目标视图view_B上的点坐标point转换成view_A视图上的点坐标,并返回在当前view_A视图中的坐标点。

- (CGPoint)convertPoint:(CGPoint)point fromView:(UIView *)view;
//栗子
 [view_A convertRect:view_A上的坐标 fromView:view_B];

3、 将接收器视图的rect转换成目标视图view上,并返回在目标视图view上对应的的rect

- (CGRect)convertRect:(CGRect)rect toView:(UIView *)view;

4、 将目标视图上view上的rect转换成接收器视图上的rect,并返回在接收器视图上的rect

- (CGRect)convertRect:(CGRect)rect fromView:(UIView *)view;

其实就是两个视图上坐标系的转换,将A视图上的point或frame转成B视图上的point或frame,前提是A、B视图在同一个屏幕中。

用法举例

假如控制器VC上有一个tableView,当我们要把UITableViewCell中的子视图btn的frame转换到VC上view视图上时:

// 在VC中实现如下代码,此rc为btn在VC中的rect
CGRect rc = [cell convertRect:cell.btn.frame toView:self.view];
//或
CGRect rc = [self.view convertRect:cell.btn.frame fromView:cell];

等价于下面的方式:

CGRect rc = [btn.superview convertRect:btn.frame toView:self.view];
//或
CGRect rc = [self.view convertRect:btn.frame fromView:btn.superview];

demo

SLVideo.gif
demo源码地址,源码还在更新中。。

相关文章

  • iOS 不同视图之间的坐标转换

    API解释 1、将view_A视图上的点坐标point转换成目标视图view_B上的点坐标,返回在目标视图view...

  • IOS-- UIView中的坐标转换

    IOS-- UIView中的坐标转换 // 将像素point由point所在视图转换到目标视图view中,返回在目...

  • 2018-03-04

    常用坐标系统知识点 1.坐标系统之间的转换 (1)坐标系分类 不同参心坐标系之间的转换、不同地心坐标系之间的转换;...

  • iOS-UIView中的坐标转换

    UIView的坐标转换 // 将point由point所在视图转换到目标视图view中,返回在目标视图view中的...

  • UIView中的坐标转换

    UIView中的坐标转换 将像素point由point所在视图转换到目标视图view中,返回在目标视图view中的...

  • 顶视图-世界坐标系-相机坐标系-Scara坐标系转换

    顶视图-世界坐标系-相机坐标系-Scara坐标系转换 1. 定义 Scara相机坐标系 标准相机坐标系 顶视图坐标...

  • 1. UIView

    标签:获取子视图、添加子视图、坐标转换、Superview、UIview的常用属性 子控件的点坐标转化为父控件的坐...

  • UIView控件坐标系转换

    版权声明:未经本人允许,禁止转载. 1.坐标转换方法 将point由point所在的视图转换到目标视图view中,...

  • iOS中不同坐标系坐标转换

    1.将像素point由point所在视图转换到目标视图view中,返回在目标视图view中的像素值 - (CGPo...

  • iOS转换坐标

    方法 ios转换坐标有两个方法:convertRect:fromView: 和 convertRect:toVie...

网友评论

  • Lazyloading:有个问题,就是要转换的view如果是tableview的sectionhead,那么滑动后再转换就会出现莫名其妙的坐标,求解为什么

本文标题:iOS 不同视图之间的坐标转换

本文链接:https://www.haomeiwen.com/subject/dsstjttx.html