Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 混淆;CGRectMake“;坐标_Objective C_Ios5_Uikit_Cocos2d Iphone - Fatal编程技术网

Objective c 混淆;CGRectMake“;坐标

Objective c 混淆;CGRectMake“;坐标,objective-c,ios5,uikit,cocos2d-iphone,Objective C,Ios5,Uikit,Cocos2d Iphone,从下面的代码 // yPos = 0, width = 100, height = 150 [imagesMutable enumerateObjectsUsingBlock: ^(UIScrollView verticalScroll, NSUInteger idx, BOOL *stop){ [verticalScroll addSubView:[UIImageView setFrame:CGRectMake(0, yPos, width, height)]] // some cod

从下面的代码

// yPos = 0, width = 100, height = 150
[imagesMutable enumerateObjectsUsingBlock: ^(UIScrollView verticalScroll, NSUInteger idx, BOOL *stop){
  [verticalScroll addSubView:[UIImageView setFrame:CGRectMake(0, yPos, width, height)]]
  // some code
  yPos += (height + 15)
}];
比方说,如果ImagesTable有3个对象。正如我从某个地方读到的,CGRectMake使用笛卡尔坐标(x=0,y=0为左下角)。所以,应该是这样

[verticalScroll addSubView:[UIImageView setFrame:CGRectMake(0, 0, 100, 150)]]
[verticalScroll addSubView:[UIImageView setFrame:CGRectMake(0, 165, 100, 150)]]
[verticalScroll addSubView:[UIImageView setFrame:CGRectMake(0, 330, 100, 150)]]
这应该意味着

First CGRectMake should has bottom left at (0, 0) and top right at (100, 150)
Second CGRectMake should has bottom left at (0, 165) and top right at (100, 315) 
Third CGRectMake should has bottom left at (0, 330) and top right at (100, 480)
然后,与ImagesTable的对象顺序(1->2->3)相比,图像从上到下的顺序应该是3->2->1

但为什么,它的出现顺序是1->2->3,就像我启动应用程序时ImagesTable的对象顺序一样?我遗漏了什么吗?

(0,0)不是左下角,而是左上角

视图具有反转的y坐标,因此y随着屏幕向下移动而增加

(0,0)不是左下角,而是左上角

视图具有反转的y坐标,因此y随着屏幕向下移动而增加


对于UIKit,原点是左上角,对于cocos2d,原点是左下角。你的意思是,CGRectMake是UIKit?(我刚开始iOS开发两周,仍然很困惑)CG功能是核心图形。(0,0)即框架之间的来源不同。CGRectMake(0,0100150)本身只是一个原点=CGPoint(0,0)(原点)的结构,并且是独立的。这一起源取决于框架。在两个框架中,您可以使用相同的带(0,0)的rect,但它们可能意味着屏幕上的不同位置。对于UIKit,原点是左上角,对于cocos2d,原点是左下角。您的意思是,CGRectMake是UIKit?(我刚开始iOS开发两周,仍然很困惑)CG功能是核心图形。(0,0)即框架之间的来源不同。CGRectMake(0,0100150)本身只是一个原点=CGPoint(0,0)(原点)的结构,并且是独立的。这一起源取决于框架。您可以在两个框架中使用相同的rect和(0,0),但它们可能表示屏幕上的不同位置。