我有一个这样设置的图像视图:

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))


ios - UIImageView无法正确居中-LMLPHP

请忽略“嗨!”广场。它下面的红色方块buttonImageView应该在该垂直约束处,但应水平居中。

最佳答案

如果您以编程方式使用约束,则首先需要激活它们

blabla.constraint1.isActive = true;

关于ios - UIImageView无法正确居中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44810076/

10-14 23:16