iPhone dev - 在viewDidLoad中设置视图的位置

时间:2010-03-01 20:37:39

标签: iphone objective-c cocoa-touch uikit

因此,在Interface Builder中,我在superview中有一个包含两个Image View对象的视图。当应用程序启动时,我想将该视图移出屏幕,以便可以将其移动到适当的位置。该视图在接口的.h文件中被描述为pictureFrame,我将视图映射到outlet pictureFrame。这是我当前的viewDidLoad:

- (void)viewDidLoad {
    [super viewDidLoad];

    CGRect theFrame = [self.pictureFrame frame];
    theFrame.origin.y = -290;
}

但是,它似乎没有起作用。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:16)

您忘记设置视图的框架:

CGRect theFrame = [self.pictureFrame frame];
    theFrame.origin.y = -290;

添加这个并且你很好:

  

self.pictureFrame.frame = theFrame;

答案 1 :(得分:1)

我倾向于把这些东西当成一个衬里。我发现当我回去看以后会更容易记住发生了什么。

我也更喜欢#define我的视图偏移量来保留我的代码中的幻数。

#define kPictureFrameHorizontalOffset -290


- (void)viewDidLoad {
    [super viewDidLoad];
    self.pictureFrame.frame = CGRectMake(self.pictureFrame.frame.origin.x + 0,
                                         self.pictureFrame.frame.origin.y + kPictureFrameHorizontalOffset,
                                         self.pictureFrame.frame.size.width + 0,
                                         self.pictureFrame.frame.size.height + 0);
}

虽然它有点冗长,但对我来说效果很好。