2012-03-01 6 views
0

Из следующего кодаСмешение с "CGRectMake" координата

// 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) 

Затем порядок изображений сверху донизу должно быть 3 -> 2 -> 1 по сравнению с объектами в imagesMutable в заказе (1 -> 2 -> 3)

Но почему он выглядит в порядке 1 -> 2 -> 3 так же, как и объекты imagesMutable при заказе приложения? Я что-то упускаю?

+2

Для UIKit происхождения является левый верхний угол, для cocos2d это левый нижний –

+0

Под этим, вы имеете в виду, CGRectMake это UIKit? (Я начинаю разработку iOS всего за 2 недели, все еще запутываю) –

+2

Функции CG - это CoreGraphics. (0,0), то есть происхождение отличается между каркасами. CGRectMake (0,0,100,150) сам по себе является просто структурой с началом = CGPoint (0,0) (начало координат) и является независимым. Там, где это происхождение зависит от структуры. Вы можете использовать один и тот же прямоугольник с (0,0) в обеих фреймворках, но они могут означать разные позиции на экране. –

ответ

33

(0,0) не нижний левый, а левый верхний.

Вид имеет инвертированные координаты y, так что y увеличивается при движении по экрану.

enter image description here

+0

+1 для изображения. (10char) – phlebotinum

Смежные вопросы