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