从下面的代码
// 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)
}];假设imagesMutable有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)然后,与imagesMutable的对象排序(1 -> 2 -> 3)相比,图像从上到下的顺序应该是3 -> 2 -> 1
但是为什么,当我启动应用程序时,它以1 -> 2 -> 3的顺序出现,与imagesMutable的对象排序相同?我是不是遗漏了什么?
发布于 2012-03-01 17:10:52
(0,0)不是左下角而是左上角。
视图具有反转的y坐标,因此y随着您向下移动屏幕而增加。

https://stackoverflow.com/questions/9513352
复制相似问题