iOS中心禁止图像不起作用

时间:2016-04-08 17:31:13

标签: ios autolayout

我添加了2个约束来将UIImageView置于UIView中。 约束是垂直和水平居中。 但由于某种原因,它不是居中的。

请注意,容器UIView具有顶部,底部,左侧,右侧边距的约束。

为什么定心不起作用? UIImageView本身是否可能需要明确的大小?

不幸的是,这一切都是通过Storyboard完成的,所以我没有要分享的片段。

2 个答案:

答案 0 :(得分:15)

您可以分享所需布局类型的屏幕截图。

您可以像这样将图像视图设置为水平和垂直。检查下图,

enter image description here

答案 1 :(得分:3)

你可以尝试下面的代码,它工作正常。

override func viewDidLoad() {
    super.viewDidLoad()

    let myImageView = UIImageView()
    myImageView.backgroundColor = UIColor.redColor()
    self.view.addSubview(myImageView)
    myImageView.translatesAutoresizingMaskIntoConstraints = false
    // set contentMode to center image
    myImageView.contentMode = .Center

    // if you want some specific heigh and width of myImageView then uncomment below Two line to add the height & Width constraints.
    // view.addConstraint(NSLayoutConstraint(item: myImageView, attribute: .Width, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1, constant: 200))
    // view.addConstraint(NSLayoutConstraint(item: myImageView, attribute: .Height, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1, constant: 200))

    // if you do not set the height and width constrints then myImageView size depends on actual size of image.
    view.addConstraint(NSLayoutConstraint(item: myImageView, attribute: .CenterX, relatedBy: .Equal, toItem: view, attribute: .CenterX, multiplier: 1, constant: 0))
    view.addConstraint(NSLayoutConstraint(item: myImageView, attribute: .CenterY, relatedBy: .Equal, toItem: view, attribute: .CenterY, multiplier: 1, constant: 0))
}