Próbuję zrozumieć funkcjonalności tych metod. Czy mógłbyś podać mi prosty przypadek użycia, aby zrozumieć ich semantykę?
Z dokumentacji, na przykład, metoda convertPoint: fromView: jest opisana w następujący sposób:
Konwertuje punkt z układu współrzędnych danego widoku na punkt w odbiorniku.
Co oznacza układ współrzędnych ? A co z odbiornikiem ?
Na przykład, czy ma sens używanie convertPoint: fromView: jak poniżej?
CGPoint p = [view1 convertPoint:view1.center fromView:view1];
Używając narzędzia NSLog, zweryfikowałem, że wartość p pokrywa się ze środkiem view1.
Z góry dziękuję.
EDYCJA: dla zainteresowanych stworzyłem prosty fragment kodu, aby zrozumieć te metody.
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));
W obu przypadkach self.window jest odbiornikiem. Ale jest różnica. W pierwszym przypadku parametr convertPoint jest wyrażony we współrzędnych view1. Wynik jest następujący:
convertPoint: fromView: {100, 100}
W drugim natomiast convertPoint jest wyrażony we współrzędnych superview (self.window). Wynik jest następujący:
convertPoint: toView: {0, 0}
convertPoint
iconvertRect
różnią się typem zwracania.CGPoint
lubCGRect
. Ale co zfrom
ito
? Czy jest jakaś praktyczna zasada, której mógłbym użyć? Dziękuję Ci.