Я намагаюся зрозуміти функціональність цих методів. Не могли б ви надати мені простий футляр для розуміння їх семантики?
З документації, наприклад, метод 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}
У другому, натомість, ConverPoint виражається в координатах супервигляду (self.window). Вихід такий:
convertPoint: toView: {0, 0}
convertPoint
іconvertRect
відрізняються типом повернення.CGPoint
абоCGRect
. Але про щоfrom
іto
? Чи є правило, яке я можу використовувати? Дякую.