我目前正在尝试在课程上添加UIIMageView
。
在没有约束的情况下,我可以添加诸如UIImageView
之类的对象而没有任何障碍:[self addSubview:myImage];
。
但是,当我添加[myImage setTranslatesAutoresizingMaskIntoConstraints: NO];
以及所需的约束时,图像将添加到UIViewController
与类。
(目前,sizeX / Y是一个单独的算法,用于设置图像的宽度和高度,并且假设约束有效,则不需要)
1)为什么会这样?
2)如何添加带有约束的UIImageView
?
以下是代码:
UIImageView *myImage = [[UIImageView alloc] init];
//AutoResize...
myImage.frame = CGRectMake(0, 0, sizeX, sizeY);
myImage.center = CGPointMake(placementX, placementY);
myImage.image = [UIImage imageNamed:@"customImage"];
[self addSubview:myImage];
// Width constraint
[self addConstraint:[NSLayoutConstraint constraintWithItem:myImage
attribute:NSLayoutAttributeWidth
relatedBy:NSLayoutRelationEqual
toItem:self
attribute:NSLayoutAttributeWidth
multiplier:0.5
constant:0]];
// Height constraint
[self addConstraint:[NSLayoutConstraint constraintWithItem:myImage
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem:self
attribute:NSLayoutAttributeHeight
multiplier:0.5
constant:0]];
谢谢!
答案 0 :(得分:0)
我目前正在尝试在课程上添加UIMageView ...
...图像被添加到视图控制器而不是类。
这些陈述对我来说都没有意义,但是......
查看约束代码,可以为图像视图的宽度和高度设置约束,但这还不足以明确定位图像视图。您需要添加2个约束:用于图像视图的垂直和水平位置。例如,如果您希望图像视图以其超级视图为中心:
[self addConstraint:[NSLayoutConstraint constraintWithItem:myImage
attribute:NSLayoutAttributeCenterX
relatedBy:NSLayoutRelationEqual
toItem:self
attribute:NSLayoutAttributeCenterX
multiplier:1.0
constant:0]];
[self addConstraint:[NSLayoutConstraint constraintWithItem:myImage
attribute:NSLayoutAttributeCenterY
relatedBy:NSLayoutRelationEqual
toItem:self
attribute:NSLayoutAttributeCenterY
multiplier:1.0
constant:0]];