我试图以编程方式将UIView courseView添加到我在情节提要中的Interface Builder中绘制的容器视图(称为容器)中。
我希望CourseView可以缩放以适合容器。使用以下代码,则没有显示任何内容-courseView没有出现。我想念什么?

var courseView:UIView?

@IBOutlet weak var container: UIView!

override func viewDidLoad() {
    super.viewDidLoad()

    courseView = UIView(frame: CGRectMake(0, 0, 1000, 1000))
    courseView?.backgroundColor = UIColor.blueColor()
    view.addSubview(courseView!)

    courseView!.translatesAutoresizingMaskIntoConstraints = false

    let courseWidthConstraint = NSLayoutConstraint(item: courseView!, attribute: .Width, relatedBy: .LessThanOrEqual, toItem: container, attribute: .Width, multiplier: 1.0, constant: 0)

    let courseHeightConstraint = NSLayoutConstraint(item: courseView!, attribute: .Height, relatedBy: .LessThanOrEqual, toItem: container, attribute: .Height, multiplier: 1.0, constant: 0)

    let courseViewConstraint = NSLayoutConstraint(item: courseView!, attribute: .Height , relatedBy: .Equal , toItem: courseView!, attribute: .Width, multiplier: 2.0, constant: 0)

    self.view.addConstraints([courseWidthConstraint, courseHeightConstraint, courseViewConstraint])

}

最佳答案

我不清楚您在此真正要实现什么。但是,作为第一个建议,请尝试将.LessThanOrEqual替换为.Equal来限制宽度。

要使约束起作用,您需要做的另一件事是container的一些顶部和主要约束(顶部只是一个建议,您可能希望对高度进行其他对齐)

let courseLeadingConstraint = NSLayoutConstraint(item: courseView!, attribute: .Leading, relatedBy: .Equal, toItem: container, attribute: .Leading, multiplier: 1.0, constant: 0)
let courseTopConstraint = NSLayoutConstraint(item: courseView!, attribute: .Top, relatedBy: .Equal, toItem: container, attribute: .Top, multiplier: 1.0, constant: 0)


高为宽度一半的宽高比约束如下

let courseViewConstraint = NSLayoutConstraint(item: courseView!, attribute: . Width , relatedBy: .Equal , toItem: courseView!, attribute: .Height, multiplier: 2.0, constant: 0)


让我知道是否可行。

关于ios - 自动版式:缩放比例不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36752618/

10-14 23:07