我正在尝试使用 Swift 在iOS 8的桌面视图上实现 AutoLayout ,并使其保持图像的单元格自动放大以适合正确的图像纵横比(纵横比)。我可以这样做,如果我从图像选择器中选择一个图像,它将正确显示图像。但是,如果我打开应用程序并期望图像显示相同,它显示的是一个小方块。我知道这与我的约束没有正确设置有关,但我可以找出问题所在。控制台也在抱怨约束。查看我正在使用的图片和代码。
链接到它的样子: http://i.stack.imgur.com/5jSBV.png
链接到约束设置: http://i.stack.imgur.com/q5xCR.png
我用来控制图像方面的代码:
func showImage(image: UIImage) {
let aspect = image.size.width / image.size.height
aspectConstraint = NSLayoutConstraint(item: imageView, attribute: NSLayoutAttribute.Width, relatedBy: NSLayoutRelation.Equal, toItem: imageView, attribute: NSLayoutAttribute.Height, multiplier: aspect, constant: 0.0)
imageView.image = image
imageView.hidden = false
addPhotoLabel.hidden = true
}
答案 0 :(得分:2)
你的边缘限制正在弄乱它。 删除它们,然后应用宽高比约束。如果您在一个轴(顶部/底部或左/右)上强制边距,它将按比例缩放图像以适合。