【发布时间】:2011-06-29 20:33:12
【问题描述】:
我正在为 iPhoneOS 4.0 模拟器(调试)、Xcode 3.2.3 编译一个基于视图的应用程序。
我有一个 UIImageView,imgView,我想要它的中心坐标。我是这样获得它们的:
CGPoint imgviewcoords=[imgView center];
这不会产生任何编译时错误,但是当我 NSLog 时,坐标如下:
NSLog(@"x: %i, y:%i", imgviewcoords.x, imgviewcoords.y);
我得到这个输出:
x: 0, y:108762
imgView 的 x 坐标显示为 0(我知道这是不对的,因为 imgView 靠近 Interface Builder 屏幕的中上部)和一些超出 iPhone 屏幕边界的巨大不可能数字y 坐标(上面输出中的 y 坐标可能不完全正确,但它是一个像这样的巨大数字)。我每次都得到相同的输出。 imgView 已正确链接到其 File's Owner 插座,我什至可以使用
更改其图像[imgview setImage:[UIImage imageNamed:@"./blahblah.png"]];
我似乎无法正确获得它的中心坐标。 我也试过了
CGPoint viewcoords=[[imgView frame] origin];
这给了我上面描述的 imgviewcoords 中相同的错误坐标。 我在应用程序的主 UIView 中拥有的每个控件都会发生这种情况,除了每个控件的 y 坐标略有不同。 我做错了什么?
@Vladimir:感谢您更改 NSLog 格式说明符的建议。但是,我认为问题不在于输出。我认为是 [imgView center] 调用不起作用。我正在使用从 [imgView Center] 返回的 CGPoint 来设置另一个 UIImageView 的中心,并且 UIImageView 只是移动到屏幕的最左上角,而不是移动到 imgView 的中心。所以我猜是 [imgView center] 调用返回了一组错误的坐标。
【问题讨论】:
标签: objective-c ios4 uiview