swift - 我很笨,我的子视图不会服从并正确调整自己的大小

swift - I'm dumb and my subview wont obey and correctly size itself

我觉得这对你们这些老手来说是一个垒球,但我在调整 UIImageView 的子视图的大小时遇到​​了很多麻烦...这是我得到的:

var myImageView:UIImageView!

var tmpView:UIImageView!

myImageView 是我的 "main" UIImageView,我将 tmpView 视为子视图...现在我已经尝试了启用和不启用自动布局,但我已经设置了 myImageView 的约束 s.t。 myImageView 占据了整个屏幕。我已经通过设置 myImageView.image = UIImage...等确认了这是真的。

这是我初始化图像并将其添加到子视图的代码:

self.tmpView.image = UIImage(named: "myImage.png")
self.tmpView.frame = CGRect(x: 0, y: 0, width: 200, height: 300)
self.imageView2.addSubview(self.tmpView)

这就是我 运行 遇到问题的地方 - 无论我将 tmpView 的高度和宽度设置为什么,大小都不会改变。有趣的是,改变 x,y 确实会影响子视图的位置。

以下是我的问题:1) 为什么 x 和 y 都能很好地服从,但宽度和高度却不能?

2) 我该如何解决这个问题,最好是通过编程方式还是通过故事板来解决?

您不应再在使用自动版式时直接修改框架。向 tmpView 添加宽度和高度约束,如果您使用 IB,则为它们创建出口(出口类型应为 NSLayoutContraint)。

您也可以在代码中创建约束,但除非万不得已,否则没有必要这样做。

在这两种情况下,要调整 tmpView 的大小,请将每个约束的 constant 属性 更改为您想要的值。

widthConstraint.constant = yourNewWidth;
heightConstraint.constant = yourNewHeight;