Ios 如何在objective c中将imageView框架的矩形作为子视图

Ios 如何在objective c中将imageView框架的矩形作为子视图,ios,Ios,如何在objective c中将imageView框架的矩形作为子视图? 内部视图控制器我有一个视图,在该视图内我想放置一个imageView,imageView框架应小于视图框架的框架,imageView应位于视图框架的中心。首先,设置imageView的大小,其次,设置imageView的坐标,下面是代码: UIView *container = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 200, 200)]; co

如何在objective c中将imageView框架的矩形作为子视图?
内部视图控制器我有一个视图,在该视图内我想放置一个imageView,imageView框架应小于视图框架的框架,imageView应位于视图框架的中心。

首先,设置imageView的大小,其次,设置imageView的坐标,下面是代码:

    UIView *container = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 200, 200)];
    container.backgroundColor = [UIColor blueColor];
    [self.view addSubview:container];

    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
    imageView.backgroundColor = [UIColor redColor];
    [container addSubview:imageView];

    CGRect f = imageView.frame;
    f.origin.x = CGRectGetWidth(container.bounds) / 2.0f - CGRectGetWidth(f) / 2.0;
    f.origin.y = CGRectGetHeight(container.bounds) / 2.0f - CGRectGetHeight(f) / 2.0f;
    imageView.frame = f;
或者设置imageView的中心(警告!imageView将添加到
self.view
!)

此外,还可以使用自动布局,如下所示:

    UIView *container = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 200, 200)];
    container.backgroundColor = [UIColor blueColor];
    [self.view addSubview:container];

    UIImageView *imageView = [[UIImageView alloc] init];
    imageView.backgroundColor = [UIColor redColor];
    [container addSubview:imageView];
    imageView.translatesAutoresizingMaskIntoConstraints = NO;

    NSLayoutConstraint *c1 = [NSLayoutConstraint constraintWithItem:imageView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1 constant:100];
    NSLayoutConstraint *c2 = [NSLayoutConstraint constraintWithItem:imageView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1 constant:100];
    NSLayoutConstraint *c3 = [NSLayoutConstraint constraintWithItem:imageView attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:container attribute:NSLayoutAttributeCenterX multiplier:1 constant:0];
    NSLayoutConstraint *c4 = [NSLayoutConstraint constraintWithItem:imageView attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:container attribute:NSLayoutAttributeCenterY multiplier:1 constant:0];
    c1.active = YES;
    c2.active = YES;
    c3.active = YES;
    c4.active = YES;
上述所有解决方案都将imageView置于
容器的中心

    UIView *container = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 200, 200)];
    container.backgroundColor = [UIColor blueColor];
    [self.view addSubview:container];

    UIImageView *imageView = [[UIImageView alloc] init];
    imageView.backgroundColor = [UIColor redColor];
    [container addSubview:imageView];
    imageView.translatesAutoresizingMaskIntoConstraints = NO;

    NSLayoutConstraint *c1 = [NSLayoutConstraint constraintWithItem:imageView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1 constant:100];
    NSLayoutConstraint *c2 = [NSLayoutConstraint constraintWithItem:imageView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1 constant:100];
    NSLayoutConstraint *c3 = [NSLayoutConstraint constraintWithItem:imageView attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:container attribute:NSLayoutAttributeCenterX multiplier:1 constant:0];
    NSLayoutConstraint *c4 = [NSLayoutConstraint constraintWithItem:imageView attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:container attribute:NSLayoutAttributeCenterY multiplier:1 constant:0];
    c1.active = YES;
    c2.active = YES;
    c3.active = YES;
    c4.active = YES;