坐标系转换方法:
- (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;
用法:
// controllerA 中有一个UITableView, UITableView里有多行UITableVieCell,cell上放有一个button
// 把btn在其父视图cell中的x、y坐标转换成在self.view中的x、y坐标
CGPoint p = [btn.superview convertPoint:btn.frame.origin toView:self.view];
// 等价于:
CGPoint p = [self.view convertPoint:btn.frame.origin fromView:btn.superview];
// 把btn的frame从其父视图cell中的坐标系 编程self.view的坐标系
CGRect rc = [btn.superview convertRect:btn.frame toView:self.view];
// 等价于:
CGRect rc = [self.view convertRect:btn.frame fromView:btn.superview];