Ios UIImageView不响应居中

Ios UIImageView不响应居中,ios,objective-c,uiimageview,Ios,Objective C,Uiimageview,我正试图为iOS制作一个简单的指南针。旋转动画似乎围绕屏幕中心旋转指南针图像,因此我尝试自动将指南针图像的UIImageView居中,以便它在不同的设备上工作 这就是我的问题所在。我尝试在ViewDidLoad中使用以下代码将图像居中,但没有结果: compassImage.center = CGPointMake(CGRectGetMidX(self.view.frame), CGRectGetMidY(self.view.frame)); 我最初将指南针图像放置在故事板中的一个随机位置,以

我正试图为iOS制作一个简单的指南针。旋转动画似乎围绕屏幕中心旋转指南针图像,因此我尝试自动将指南针图像的UIImageView居中,以便它在不同的设备上工作

这就是我的问题所在。我尝试在ViewDidLoad中使用以下代码将图像居中,但没有结果:

compassImage.center = CGPointMake(CGRectGetMidX(self.view.frame), CGRectGetMidY(self.view.frame));
我最初将指南针图像放置在故事板中的一个随机位置,以确保其正常工作。我已经在该居中代码前后打印了NSLog检查,以确保其具有效力,并且看起来确实居中了图像(在我的iPhone 4s上),但这并未反映在视图中:

2014-05-17 12:18:23.015 Compass[447:60b] Old: 160, 386
2014-05-17 12:18:23.019 Compass[447:60b] New: 160, 240
我会发布一张图片,但不被允许,因为这是我的第一篇帖子

事实上,这就是整个设置。我肯定我在某个地方出错了:

ViewController.h

#import <UIKit/UIKit.h>
#import <CoreLocation/CoreLocation.h>
#import <QuartzCore/QuartzCore.h>

@interface ViewController : UIViewController <CLLocationManagerDelegate>

@property (nonatomic, retain) CLLocationManager *locationManager;
@property (nonatomic, retain) IBOutlet UIImageView *compassImage;
@property (nonatomic, retain) IBOutlet UILabel *trueHeadingLabel;

@end
我已经看了这里几乎所有的问题和答案,它们都与改变UIImageView的位置和居中有关,但没有任何效果。我有一种感觉,这可能就是我设置整个程序的方式,这不会让我感到惊讶,因为我是一个全新的、超级缺乏经验的人。任何帮助都会很棒。甚至还有关于更好编程实践的建议。如果你需要更多的信息,大声喊一声

变化:

compassImage.center = CGPointMake(CGRectGetMidX(self.view.frame), CGRectGetMidY(self.view.frame));
致:


此外,请确保IB中的compassImage没有任何会干扰的约束

听起来您可能启用了自动布局并覆盖了代码。

听起来您可能启用了自动布局并覆盖了代码。是的!Autolayout已启用。这是因为
CGRectGetMidX
获取superview坐标空间中中心的X位置。它相当于
rect.origin.x+rect.size.width/2
(至少在概念上是这样)。恐怕运气不好。IB中的compassImage也没有限制。
compassImage.center = CGPointMake(CGRectGetMidX(self.view.frame), CGRectGetMidY(self.view.frame));
compassImage.center = self.view.center;