使用setAutoresizingMask定位UIImageView

时间:2012-09-24 15:52:36

标签: iphone objective-c ios xcode cocoa-touch

我正在为iPhone 5屏幕更新我的应用程序。听起来像setAutoresizingMask可以很好地用于定位对象(而不是硬编码alt坐标),但我似乎无法让它工作。

我的应用不会旋转,我只想将此图片加载到底部,适用于480或568高屏幕。

这是我的简单尝试。非常感谢您的建议。感谢。

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.view.autoresizesSubviews = YES;

    UIImage *getImg = [UIImage imageNamed:@"footer.jpg"];
    UIImageView *footer = [[UIImageView alloc] initWithImage:getImg];
    [footer setFrame:CGRectMake(0,0,302,50)];
    [footer setAutoresizingMask:UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin];    

    [self.view addSubview:footer];
}

(我相信这个setAutoresizingMask应该将图像设置在左下角。)

1 个答案:

答案 0 :(得分:2)

自动调整遮罩不会影响控件的初始位置,它们只会影响位置在超级视图更改其边界时的更新方式。换句话说,设置新的自动调整遮罩的行为永远不会更新控件的位置。

因此,您仍然需要注意最初将控件放在正确的位置。您可以使用界面构建器轻松地完成此操作。如果您以编程方式布置界面,则应通过查询其bounds成员变量而不是直接硬编码测量来将控件相对于其超级视图的边界放置。从那时起,您可以将更新保留给自动调整掩码。