坐標系轉換

1、簡單的兩個view放到控制器的view里,其中blueView是redView的子控件


2、拖線到控制器里,打印各自的frame、轉換坐標系后的frame

@interface ViewController ()

@property (weak, nonatomic) IBOutlet RedView *redView;

@property (weak, nonatomic) IBOutlet BlueView *blueView;

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

NSLog(@"self.redView:%@,self.blueView:%@",NSStringFromCGRect(self.redView.frame),NSStringFromCGRect(self.blueView.frame));

CGRect newRectRed = [self.redView convertRect:self.redView.bounds toView:[UIApplication sharedApplication].keyWindow];

CGRect newRectRed2 = [self.redView convertRect:self.redView.bounds toView:self.view];

CGRect newRectBlue = [self.blueView convertRect:self.blueView.bounds toView:[UIApplication sharedApplication].keyWindow];

CGRect newRectBlue2 = [self.blueView.superview convertRect:self.blueView.bounds toView:self.view];

NSLog(@"newRectRed:%@,newRectBlue:%@",NSStringFromCGRect(newRectRed),NSStringFromCGRect(newRectBlue));

NSLog(@"newRectRed2:%@,newRectBlue2:%@",NSStringFromCGRect(newRectRed2),NSStringFromCGRect(newRectBlue2));

}

3、結果如下

疑問:為什么轉到keywindow后的坐標和轉到控制器的view的坐標不同呢?

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容