我有一个这样设置的图像视图:
let buttonImageView: UIImageView = {
let iv = UIImageView()
iv.backgroundColor = .red
iv.translatesAutoresizingMaskIntoConstraints = false
iv.frame.size = CGSize(width: CGFloat(375 * (11 / 59)), height: CGFloat(375 * (11 / 59)))
return iv
}()
然后,添加约束:
/* center-top button */
// buttonImageView.frame = CGRect(x: 0, y: 0, width: buttonDiameter, height: buttonDiameter)
addConstraint(NSLayoutConstraint(item: buttonImageView, attribute: .height, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1, constant: buttonDiameter))
addConstraint(NSLayoutConstraint(item: buttonImageView, attribute: .width, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1, constant: buttonDiameter))
addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "H:[v0]", options: NSLayoutFormatOptions.alignAllCenterX, metrics: nil, views: ["v0": buttonImageView]))
// addConstraintsWithFormat("H:[v0]", views: buttonImageView)
addConstraintsWithFormat("V:|-\(buttonSpacing)-[v0]", views: buttonImageView)
//addConstraint(NSLayoutConstraint(item: buttonImageView, attribute: .centerX, relatedBy: .equal, toItem: self, attribute: .centerX, multiplier: 1, constant: 0))
请忽略“嗨!”广场。它下面的红色方块
buttonImageView
应该在该垂直约束处,但应水平居中。 最佳答案
如果您以编程方式使用约束,则首先需要激活它们
blabla.constraint1.isActive = true;
关于ios - UIImageView无法正确居中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44810076/