2016-02-28 73 views
0

我試圖讓UIView courseView自動佈局。我希望UIView的比例保持不變,直到最外邊緣距離超視圖邊緣15點。 由於某些原因courseView填充整個超視圖(減去15分),並沒有調整大小以適應。所以有些不顯示並被切斷。Autolayout調整UIView不工作

self.view.addSubview(courseView!) 

    let aspectConstraint = NSLayoutConstraint(item: courseView, 
     attribute: .Height, 
     relatedBy: .Equal, 
     toItem: courseView, 
     attribute: .Width, 
     multiplier: courseView.frame.size.height/courseView.frame.size.width, 
     constant: 0.0) 
    aspectConstraint.active = true 

    let topConstraint = courseView.topAnchor.constraintGreaterThanOrEqualToAnchor(topLayoutGuide.bottomAnchor, constant: 15) 
    topConstraint.active = true 
    let leadingConstraint = courseView.leadingAnchor.constraintLessThanOrEqualToAnchor(view.leadingAnchor, constant: 15) 
    leadingConstraint.active = true 
    let trailingConstraint = courseView.trailingAnchor.constraintGreaterThanOrEqualToAnchor(view.trailingAnchor, constant: -15) 
    trailingConstraint.active = true 
    let bottomConstraint = courseView.bottomAnchor.constraintLessThanOrEqualToAnchor(view.bottomAnchor, constant: -15) 
    bottomConstraint.active = true 

任何想法?謝謝!

回答

0

只需在添加約束之前禁用translatesAutoresizingMaskIntoConstraints,它應該可以正常工作。

courseView.translatesAutoresizingMaskIntoConstraints = false; 

順便說一句,你不需要aspectConstraint,因爲這將最有可能打破constratints(它確實對我來說,當我試圖)。