Я пытаюсь понять функциональность этих методов. Не могли бы вы дать мне простой пример использования, чтобы понять их семантику?
Из документации, например, метод convertPoint: fromView: описывается следующим образом:
Преобразует точку из системы координат данного вида в систему координат приемника.
Что означает система координат ? А как насчет ресивера ?
Например, имеет ли смысл использовать convertPoint: fromView: как показано ниже?
CGPoint p = [view1 convertPoint:view1.center fromView:view1];
Используя утилиту NSLog, я убедился, что значение p совпадает с центром view1.
Заранее спасибо.
РЕДАКТИРОВАТЬ: для тех, кто заинтересован, я создал простой фрагмент кода, чтобы понять эти методы.
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));
В обоих случаях получателем является self.window. Но есть разница. В первом случае параметр convertPoint выражается в координатах view1. Результат следующий:
convertPoint: fromView: {100, 100}
Во втором случае convertPoint выражается в координатах superview (self.window). Результат следующий:
convertPoint: toView: {0, 0}
convertPoint
иconvertRect
различаются типом возвращаемого значения.CGPoint
илиCGRect
. А как насчетfrom
иto
? Есть ли какое-то практическое правило, которое я мог бы использовать? Спасибо.