我想了解你能一个了解他们的语义函数? 从例如convertPoint:fromView:方法描述如下: 一个点从一个给定的视图,该接收器的坐标系进行转换。 什么是坐标系是什么意思?怎么样的接收器? 例如,它使convertPoint:fromView:像下面这样?

CGPoint p = [view1 convertPoint:view1.center fromView:view1];

使用NSLog的工具,我已经验证了P值与厂景的中心重合。 预先感谢您。 编辑:对于那些有兴趣,我创建了一个简单的代码片段来理解

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表现在厂景坐标。输出是以下内容: convertPoint:fromView:{100,100} 在第二个 CodeGo.net,相反,convertPoint表现在父视图(self.window)坐标。输出是以下内容: convertPoint:toView:{0,0}

 

1. 每个视图都有自己的坐标系-以原点为0,0,宽度和高度。这是在所描述的bounds矩形的看法。该frame的视图,但是,将具有其原点在点它的父视图的border矩形内。 您的视图层次的最外层观点有它的起源在0,0对应于iOS的屏幕左上方。 如果您在20,30添加一个子视图这一观点,然后在子视图一个点0,0在父视图对应一个点20,30。这种转换是在做什么。 上面的例子是没有意义的(没有双关语意),因为它从一个视图到其自身转换一个点,所以什么都不会发生。你会找出点看法是相对于它的父-测试是否有人动过的画面 CodeGo.net,例如:

CGPoint originInSuperview = [superview convertPoint:CGPointZero fromView:subview];

在“接收器”是一个标准的Objective-C的术语,表示正在接收(方法也是已知的,因此在我的例子在这里接收器对象superview
2. 在iOS中每个视图有一个坐标系。坐标系统就像是一个曲线图,其中有x轴方向(水平线)和Y轴(垂直线)。在该线interesect的点被称为原点.a 个点是由(X,Y)表示。例如,(2,1)表示的点是2个像素左,1个像素下来。 你可以阅读在这里更多关于坐标系- 但你要知道那是什么,在iOS中,每个视图都有自己的坐标系,其中左上角为原点。 X轴的推移增大到右侧,与y轴的推移增加了。 对于转换点的问题,借这个例子。 有一种说法,叫做V1,这是宽100像素,100像素高。现在里面的那个,还有另一种观点,称为V2,在(10,10,50,50),即(10,10)是 在点V 1的坐标系,其中V2的左上角应定位,和(50, 50)是V2的宽度和高度。现在,让里面点V2的坐标系,说(20,20)。现在,那又是什么点为V1的坐标系里面?这就是对(当然你可以计算自己,但他 们保存您额外的工作)。根据记录,在V1中的点是(30,30)。 希望这会有所帮助。
3.

// So here I want to take some subview and put it in my view's coordinate space
_originalFrame = [[aView superview] convertRect: aView.frame toView: self];

4.

CGPoint centerInSubview = [subview convertPoint:subview.center fromView:subview.superview];

CGPoint centerInSubview = [subview.superview convertPoint:subview.center toView:subview];

难道我路要走理解这应该是如何工作的?
5.

CGPoint newPoint = [self.view convertPoint:self.child1OfView1.center fromView:self.child1OfView];

6.