我正在尝试了解这些方法的功能。您能否提供一个简单的用例来理解他们的语义?
在文档中,例如,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是用超级视图(self.window)坐标表示的。输出如下:
convertPoint:toView:{0,0}
convertPoint
并且convertRect
返回类型不同。CGPoint
或CGRect
。但是,我们from
并to
?有没有可以使用的经验法则?谢谢。