Tôi đang cố gắng để hiểu các chức năng của các phương pháp này. Bạn có thể cung cấp cho tôi một usecase đơn giản để hiểu ngữ nghĩa của họ không?
Từ tài liệu, ví dụ, convertPoint: fromView: phương thức được mô tả như sau:
Chuyển đổi một điểm từ hệ tọa độ của một khung nhìn đã cho sang góc nhìn của máy thu.
Gì hệ toạ độ trung bình? Còn người nhận thì sao?
Ví dụ: nó có ý nghĩa khi sử dụng convertPoint: fromView: như sau không?
CGPoint p = [view1 convertPoint:view1.center fromView:view1];
Sử dụng tiện ích NSLog, tôi đã xác minh rằng giá trị p trùng với trung tâm của view1.
Cảm ơn bạn trước.
EDIT: đối với những người quan tâm, tôi đã tạo một đoạn mã đơn giản để hiểu các phương thức này.
UIView* view1 = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 150, 200)];
view1.backgroundColor = [UIColor redColor];
NSLog(@"view1 frame: %@", NSStringFromCGRect(view1.frame));
NSLog(@"view1 center: %@", NSStringFromCGPoint(view1.center));
CGPoint originInWindowCoordinates = [self.window convertPoint:view1.bounds.origin fromView:view1];
NSLog(@"convertPoint:fromView: %@", NSStringFromCGPoint(originInWindowCoordinates));
CGPoint originInView1Coordinates = [self.window convertPoint:view1.frame.origin toView:view1];
NSLog(@"convertPoint:toView: %@", NSStringFromCGPoint(originInView1Coordinates));
Trong cả hai trường hợp self.window là người nhận. Nhưng có một sự khác biệt. Trong trường hợp đầu tiên, tham số convertPoint được thể hiện theo tọa độ view1. Đầu ra là như sau:
convertPoint: fromView: {100, 100}
Trong phần thứ hai, thay vào đó, convertPoint được thể hiện theo tọa độ giám sát (self.window). Đầu ra là như sau:
convertPoint: toView: {0, 0}
convertPoint
vàconvertRect
khác nhau trong loại trả lại.CGPoint
hoặcCGRect
. Nhưng những gì vềfrom
vàto
? Có một quy tắc của ngón tay cái mà tôi có thể sử dụng? Cảm ơn bạn.