gpt4 book ai didi

ios - 将自动布局与 UIImageView 一起使用不会保留帧大小

转载 作者:搜寻专家 更新时间:2023-11-01 05:59:20 24 4
gpt4 key购买 nike

我想以编程方式实现一个 UIImageView,但是当我应用自动布局约束时,它并没有像我预期的那样工作。为简单起见,我将 ImageView 的框架设置为 100 x 100。这很好用,但是一旦我添加了自动布局约束,框架大小就不再适用,图像将以全尺寸呈现(在本例中, 320px 宽)而不是缩小以适应 ImageView 框架。

这是为什么?我怎样才能获得所需的行为?我想要一个 100x100 的 ImageView ,它可以根据纵横比缩小图像,并位于屏幕中间从底部向上 50 度的位置。

let imageView = UIImageView(frame: CGRectMake(0, 0, 100, 100))
imageView.image = UIImage(named: "myimg")
imageView.contentMode = .ScaleAspectFit
imageView.clipsToBounds = true
imageView.setTranslatesAutoresizingMaskIntoConstraints(false)
self.view.addSubview(imageView)
self.view.addConstraint(NSLayoutConstraint(item: imageView, attribute: .Bottom, relatedBy: .Equal, toItem: self.view, attribute: .Bottom, multiplier: 1, constant: -50))
self.view.addConstraint(NSLayoutConstraint(item: imageView, attribute: .CenterX, relatedBy: .Equal, toItem: self.view, attribute: .CenterX, multiplier: 1, constant: 0))

最佳答案

使用自动布局时不应设置任何框架。您需要为 ImageView 的宽度和高度添加两个约束。

let imageView = UIImageView()
// your other code here

imageView.addConstraint(NSLayoutConstraint(item: imageView, attribute: .Width, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1, constant: 100))

imageView.addConstraint(NSLayoutConstraint(item: imageView, attribute: .Height, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1, constant: 100))

关于ios - 将自动布局与 UIImageView 一起使用不会保留帧大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26952759/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com