如何将UIImageView与视图控制器的中心对齐?

时间:2014-11-03 13:20:49

标签: objective-c iphone autolayout

我希望图像视图显示在底部的中心,我将图像视图添加到视图控制器中的另一个图像视图。结果是图像视图显示在底部但不完全位于中心,任何人都可以建议我的错误码?

-(void)viewWillAppear:(BOOL)animated
{
    UIImageView *imgView=[[UIImageView alloc]init];

    [imgView setTranslatesAutoresizingMaskIntoConstraints:NO];


    UIImageView *mspimgvw=[[UIImageView alloc]init];

    [mspimgvw setTranslatesAutoresizingMaskIntoConstraints:NO];
    mspimgvw.image=[UIImage imageNamed:@"msplogo.jpg"];

    [self.imgView addSubview:mspimgvw];

    [self.view addSubview:imgView];

    CGFloat bottom=0;
    [imgView addConstraint:[NSLayoutConstraint constraintWithItem:mspimgvw attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:imgView attribute:NSLayoutAttributeBottom multiplier:1 constant:bottom-40]];

    [imgView addConstraint:[NSLayoutConstraint constraintWithItem:mspimgvw attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:imgView attribute:NSLayoutAttributeCenterX multiplier:1.0 constant:bottom-40]];

    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[imgView]|" options:0 metrics: 0 views:dicViews]];

    [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[imgView]|" options:0 metrics: 0 views:dicViews]];
}

我希望图像显示在视图控制器的中心。我的代码中要更改什么?

1 个答案:

答案 0 :(得分:1)

你走了:

[self.view addConstraint:[NSLayoutConstraint constraintWithItem:imageView
                                                      attribute:NSLayoutAttributeCenterX
                                                      relatedBy:NSLayoutRelationEqual
                                                         toItem:self.view
                                                      attribute:NSLayoutAttributeCenterX
                                                     multiplier:1.f
                                                       constant:0.f]];

[self.view addConstraint:[NSLayoutConstraint constraintWithItem:imageView
                                                      attribute:NSLayoutAttributeBottom
                                                      relatedBy:NSLayoutRelationEqual
                                                         toItem:self.view
                                                      attribute:NSLayoutAttributeBottom
                                                     multiplier:1.f
                                                       constant:0.f]];