2015-03-02 34 views
1

我有一個UIView,我正在繪製並將子視圖添加到另一個UIView。UIView的寬度不會根據約束進行更改

這充當分隔符,因此它需要高1px並且視圖的寬度被添加。

這是我到目前爲止的代碼:

var underline = UIView() 
underline.frame = CGRectMake(0, 37, backgroundSection.bounds.size.width, 1) 
underline.backgroundColor = UIColor.whiteColor() 
backgroundSection.addSubview(underline) 

這並不繪製的UIView的寬度是相同的寬度backgroundSection。這會將其繪製爲與約束重新調整視圖前backgroundSection在IB上的寬度相同。

我可以將backgroundSection的clipToBounds設置爲true,但是如果將backgroundSection設置爲true,則會在backgroundSection上移除它。

我該如何解決這個問題。

謝謝, 亞歷克斯

回答

1

當您正在使用的限制,否則不應使用框架的設置來。自動佈局將爲您完成所有框架設置。

相反,你需要將約束添加到您的視圖:

var underline = UIView() 
backgroundSection.addSubview(underline) 

// These two lines will add horizontal and vertical constraints pinning the underline view to backgroundSection's edges 
backgroundSection.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|[view]|", options: nil, metrics: nil, views: ["view": underline])) 
backgroundSection.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|[view]|", options: nil, metrics: nil, views: ["view": underline]))