Bu yöntemlerin işlevlerini anlamaya çalışıyorum. Anlambilimlerini anlamak için bana basit bir kullanım durumu sağlayabilir misiniz?
Belgelerden, örneğin, convertPoint: fromView: yöntemi aşağıdaki gibi açıklanmıştır:
Belirli bir görünümün koordinat sisteminden bir noktayı alıcınınkine dönüştürür.
Koordinat sistemi ne anlama geliyor? Alıcı ne olacak ?
Örneğin, convertPoint: fromView: aşağıdaki gibi kullanmak mantıklı mı?
CGPoint p = [view1 convertPoint:view1.center fromView:view1];
NSLog yardımcı programını kullanarak, p değerinin view1'in merkezine denk geldiğini doğruladım.
Şimdiden teşekkür ederim.
DÜZENLEME: ilgilenenler için, bu yöntemleri anlamak için basit bir kod parçası oluşturdum.
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));
Her iki durumda da self.window alıcıdır. Ama bir fark var. İlk durumda, convertPoint parametresi view1 koordinatlarında ifade edilir. Çıktı şu şekildedir:
convertPoint: fromView: {100, 100}
İkincisinde, bunun yerine, convertPoint denetleme (self.window) koordinatlarında ifade edilir. Çıktı şu şekildedir:
convertPoint: toView: {0, 0}
convertPoint
veconvertRect
dönüş türünde farklılık gösterir.CGPoint
veyaCGRect
. Peki yafrom
veto
? Kullanabileceğim bir pratik kural var mı? Teşekkür ederim.