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));
然后我们看一下在日志中打印的结果:
文章图片
打印结果 【UIView坐标转换小结】把这两个转换rect的方法弄明白了,上面那两个转换point的方法就自然明白了,相同的道理
推荐阅读
- 进制转换
- Python|Python 实现列表与二叉树相互转换并打印二叉树封装类-详细注释+完美对齐
- 当你的能量场不足以转换时……
- 转换思维
- matlab|2、将图像转换为点云
- [5]|[5] Safe Area Layout (iOS 11)
- 怎么添加多张CAD图纸文件共同进行版本转换()
- 单片机|单片机 c语言 d,单片机89C51与A/D转换器MAX - 控制/MCU - 电子发烧友网
- 单片机从入门到高级|51单片机——AD/DA转换
- JavaScript之变量、数据类型、数据转换、模板字符串