如何在父视图中定位UIView?

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调用的),图片仍然出现在右下角。我该如何正确定位它?

2个回答

3

将您的代码移动到viewDidAppear中。直到viewWillAppear/viewDidAppear执行之前,bounds和frames都不能保证已经设置。


好的,现在我需要移动它的动画,从UIPageControl开始,我应该再发一篇帖子吗? - marciokoko
是的,我会发布另一篇关于动画的文章,因为那是一个更加复杂的过程。 - Khaled Barazi

1
请确保您适当设置了您的支柱和弹簧,然后只需执行以下操作:
 -(void)viewWillAppear:(BOOL)animated 
  {
    [super viewWillAppear:animated];
    firstView.center = self.center;
  }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接