我已经在视图控制器中设置了UIImageView并分配了约束x和Y,这在我试图设置图像的宽度,高度和长宽比时起作用,但是它似乎不起作用。
我已经在这里尝试了许多答案,但似乎可以使它起作用。
import UIKit
class GuestLoginViewController: UIViewController {
let headerImage = UIImageView()
override func viewDidLoad() {
super.viewDidLoad()
setHeaderImage()
}
func setHeaderImage() {
view.addSubview(headerImage)
headerImage.frame = CGRect(x: 0, y: 0, width: super.view.frame.width, height: 95)
headerImage.translatesAutoresizingMaskIntoConstraints = false
headerImage.mask?.contentMode = UIView.ContentMode.redraw
headerImage.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
headerImage.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
headerImage.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
headerImage.image = UIImage(named: "header")
view.sendSubviewToBack(headerImage)
}
}
答案 0 :(得分:0)
设置headerImage.translatesAutoresizingMaskIntoConstraints = false
后,frame
将被忽略。您需要设置一些约束条件以建立UIImageView
的高度。不幸的是,图像内容不会影响UIImageView
的高度。
设置:
根据我的评论,您关闭了headerImage.translatesAutoresizingMaskIntoConstraints = false
,它起作用了。
这给您带来了额外的约束(您的3个约束以及从框架生成的4个约束),但是幸运的是它们没有冲突。
相反,我建议您将translatesAutoresizingMaskIntoConstraints
设置为false
并为height
设置约束:
headerImage.heightAnchor.constraint(equalToConstant: 95).isActive = true