UIView坐标转换小结

最近发现在项目开发中经常会用到UIView的坐标转换,因此在这里总结一下。
主要用到这几个方法:

- (CGPoint)convertPoint:(CGPoint)point toView:(nullable UIView *)view;
- (CGPoint)convertPoint:(CGPoint)point fromView:(nullable UIView *)view;
// 后面就具体使用下面的代码举例,下面的会了,上面的自然也就会了
- (CGRect)convertRect:(CGRect)rect toView:(nullable UIView *)view;
- (CGRect)convertRect:(CGRect)rect fromView:(nullable UIView *)view;

下面我用实例来说明一下

UI界面
    CGRect greenRect = self.greenView.frame;
    CGRect redRect = self.redView.frame;
    CGRect blueRect = self.blueView.frame;

    NSLog(@"绿色view的frame====%@",NSStringFromCGRect(greenRect));
    NSLog(@"红色view的frame====%@",NSStringFromCGRect(redRect));
    NSLog(@"蓝色view的frame====%@",NSStringFromCGRect(blueRect));
    
    //坐标转换后
//以下两句代码都是计算redView中的blueView在最外面的UIView中的frame
    CGRect blueRect1 = [self.redView convertRect:self.blueView.frame toView:self.view];
    CGRect blueRect2 = [self.view convertRect:self.blueView.frame fromView:self.redView];
    //fromView和toView正好对称
    NSLog(@"蓝色view的frame1====%@",NSStringFromCGRect(blueRect1));
    NSLog(@"蓝色view的frame2====%@",NSStringFromCGRect(blueRect2));

然后我们看一下在日志中打印的结果:

打印结果

把这两个转换rect的方法弄明白了,上面那两个转换point的方法就自然明白了,相同的道理

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,245评论 4 61
  • 点(Point)(1)- (CGPoint)convertPoint:(CGPoint)point fromVie...
    蒲公英少年带我飞阅读 13,524评论 2 24
  • 1.ios中数据的存储方式 (1)Plist(NSArray\NSDictionary)(2)Preference...
    王道ob阅读 4,429评论 0 0
  • “多加麻油沾点醋,趁热,千万别嚼,直接咽!这才叫吃火锅的正确方法,大岳你懂个屁!滚去给我当你的三好学生吧!” “好...
    月色触角阅读 3,142评论 0 0
  • 文|在昔 夏天已进入小暑,最近天气闷热的厉害。晌午顶着烈日去了好几个地方,随着日渐中午,天空中好像结了一层密不透风...
    在昔阅读 3,142评论 0 2