3

我添加了一个带有 UIImage 的 UIImageView,我希望它出现在主 UIView 的中心顶部。

我将使用 UIPageControl 将该视图向左滑动并从右侧引入新视图。我添加了 UIImageView 通常只是将它添加到右下角

-(void)createUIViews{
    UIImage *image1 = [UIImage imageNamed:@"GiftCard.png"];
    firstView = [[UIImageView alloc] initWithImage:image1];
    firstView.backgroundColor = [UIColor grayColor];
    firstView.tag = 1;
    firstView.autoresizingMask = (UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin);
}

现在我想把它放在顶部中心。所以我在想这样的事情:

CGRect newFrame = self.view.frame;
    newFrame.origin.x += 50;
    self.view.frame = newFrame;

    [self.view addSubview:firstView];

但是当我在前一个代码的底部添加这段代码时(顺便说一句,它是从 viewDidLoad 调用的),图像仍然出现在右下角。如何正确定位?

4

2 回答 2

3

将您的代码移动到 viewDidAppear。在 viewWillAppear/viewDidAppear 之前,不能保证已设置边界和框架。

于 2013-03-12T20:49:54.747 回答
1

确保正确设置支柱和弹簧,然后执行以下操作:

 -(void)viewWillAppear:(BOOL)animated 
  {
    [super viewWillAppear:animated];
    firstView.center = self.center;
  }
于 2013-03-12T21:01:48.067 回答