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

var myImageView:UIImageView!

var tmpView:UIImageView!


myImageView是我的“主要” UIImageView,并且我将tmpView视为子视图...现在,无论是否启用自动布局,我都尝试过,但是我已经设置了myImageView的约束。 myImageView占据整个屏幕。我通过设置myImageView.image = UIImage ... etc来确认这是正确的。

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

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;

10-06 02:55