Iphone 按钮未在我的界面上移动

Iphone 按钮未在我的界面上移动,iphone,objective-c,xcode,Iphone,Objective C,Xcode,我正在制作一个应用程序,我正在尝试让一个按钮移动到特定的坐标,这取决于手机的屏幕大小(4、4、5等)。我有正确的语法,但按钮不会移动。以下是my.m ViewController文件的一部分: - (void)viewDidLoad { if([[UIScreen mainScreen] respondsToSelector:NSSelectorFromString(@"scale")]) { if ([[UIScreen mainScreen] scale] &

我正在制作一个应用程序,我正在尝试让一个按钮移动到特定的坐标,这取决于手机的屏幕大小(4、4、5等)。我有正确的语法,但按钮不会移动。以下是my.m ViewController文件的一部分:

- (void)viewDidLoad
{
    if([[UIScreen mainScreen] respondsToSelector:NSSelectorFromString(@"scale")])
    {
        if ([[UIScreen mainScreen] scale] < 1.1) {
            CGRect frame = done.frame;
            frame.origin.x = 129; //New x coordinate
            frame.origin.y = 401; //New y coordinate
            done.frame = frame;
            [done setNeedsDisplay];
            NSLog(@"Standard Resolution");
        }
        if ([[UIScreen mainScreen] scale] > 1.9) {
            NSLog(@"High Defenition Resolution");
        }
    }

    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
}
-(void)viewDidLoad
{
如果([[UIScreen Main Screen]响应选择器:NSSelector fromString(@“scale”)]))
{
如果([[UIScreen mainScreen]比例]<1.1){
CGRect frame=done.frame;
frame.origin.x=129;//新的x坐标
frame.origin.y=401;//新的y坐标
done.frame=frame;
[完成设置需要显示];
NSLog(“标准分辨率”);
}
如果([[UIScreen mainScreen]比例]>1.9){
NSLog(“高防御分辨率”);
}
}
[超级视图下载];
//从nib加载视图后,执行任何其他设置。
}
控制台中会触发
NSLog
,显示
标准分辨率
,但按钮不会从我在XIB文件中放置的位置移动。这可能是一个愚蠢的小错误,但希望你能帮助我


是的,我确实将我的
IBOutlet
链接到了按钮。

如果您在iOS 6/Xcode 4.5中启动了此项目,自动布局将默认打开。请参阅我关于此主题的帖子:

仅将框架设置为新坐标不会强制按钮移动。您应该在done.frame=frame之后调用[done setNeedsDisplay];让它知道您已经做了更改,需要重新绘制。虽然我不是100%确定,因为我不使用XIB文件。让我知道这是否有效。我添加了它,但不幸的是它仍然不起作用:(我还更新了我的帖子,添加了。。。