2011-02-18 98 views
0

我正在为基于视图的应用程序编译iPhoneOS 4.0模拟器(调试),Xcode 3.2.3。iPhone UIView中心属性返回坏值

我有一个UIImageView,imgView,其中心我想坐标。我得到他们这样的:

CGPoint imgviewcoords=[imgView center]; 

这不会产生任何编译时错误,但是当我的NSLog坐标如下:

NSLog(@"x: %i, y:%i", imgviewcoords.x, imgviewcoords.y); 

我得到这样的输出:

x: 0, y:108762 

它显示0为imgView的x坐标(我知道这是不正确的,因为imgView接近界面生成器上的屏幕的中上部)和一些巨大的不可能的数字,这是超越了iP的边界磨砂的y坐标屏幕(上面的输出中的y坐标可能不完全正确,但它是这样一个巨大的数字)。每次我都会得到相同的输出。该imgView正确链接到其文件的所有者出口,我甚至可以用

[imgview setImage:[UIImage imageNamed:@"./blahblah.png"]]; 

我似乎无法正确地获得其圆心坐标改变自己的形象。 我也试着

CGPoint viewcoords=[[imgView frame] origin]; 

并且如上所述,让我同样的错误坐标imgviewcoords。 这发生在我的应用程序的主UIView中的每一个控件上,除了每个控件的y坐标略有不同之外。 我在做什么错?

@Vladimir:感谢您提出更改NSLog格式说明符的建议。但是,我认为这不是问题的产物。我认为这是不工作的[imgView中心]调用。我正在使用从[imgView Center]返回的CGPoint来设置另一个UIImageView的中心,并且UIImageView只是移动到屏幕的左上角,而不是移动到imgView的中心。所以我猜测这是返回一组错误坐标的[imgView中心]调用。

回答

4

%I格式说明预计整数值,CGPoint组件有CGFloat的类型,尝试使用正确的符(%F) - 可能是你会得到正确的输出:

NSLog(@"x: %f, y:%f", imgviewcoords.x, imgviewcoords.y); 
+0

好。我终于明白了。当我回到家时,我改变了格式说明符,并且确实给了我正确的坐标。谢谢! – 2011-02-25 14:08:04