Я работаю с приложением на основе View, которое компилируется для iPhoneOS 4.0 Simulator (Debug), Xcode 3.2.3.
У меня есть UIImageView, imgView, центр которого я хочу координаты. Я получаю их так:
CGPoint imgviewcoords=[imgView center];
Это не приводит к ошибкам во время компиляции, но когда я NSLog координаты, как это:
NSLog(@"x: %i, y:%i", imgviewcoords.x, imgviewcoords.y);
Я получаю этот вывод:
x: 0, y:108762
Он показывает 0 для координаты x в imgView (что я знаю, что это неправильно, потому что imgView находится в верхней части середины экрана в Интерфейсном Разработчике) и какое-то гигантское невозможное число, которое далеко за пределами экрана iPhone для координата y (координата y в выходных данных выше может быть не совсем правильной, но это какое-то гигантское число, подобное этому). Я получаю точно такой же вывод каждый раз. ImgView правильно связан с выходом владельца файла, и я даже могу изменить его изображение, используя
[imgview setImage:[UIImage imageNamed:@"./blahblah.png"]];
Я просто не могу правильно определить координаты его центра.
Я также попробовал
CGPoint viewcoords=[[imgView frame] origin];
и это дает мне те же ошибочные координаты в imgviewcoords, как описано выше.
Это происходит с каждым элементом управления, имеющимся в основном UIView моего приложения, за исключением того, что координата y немного отличается для каждого элемента управления.
Что я делаю не так?
@ Владимир: Спасибо за предложение изменить спецификаторы формата NSLog. Тем не менее, я не думаю, что проблема заключается в выходе. Я думаю, что вызов [imgView center] не работает. Я использую CGPoint, который возвращается из [imgView Center], чтобы установить центр другого UIImageView, и этот UIImageView просто перемещается в самый верхний левый угол экрана вместо перемещения в центр imgView. Я предполагаю, что это вызов [imgView center], который возвращает неверный набор координат.