簡體   English   中英

UIView的寬度不會因約束而改變

[英]Width of a UIView not changing based on constraints

我有一個要繪制的UIView並將一個子視圖添加到另一個UIView。

這起分隔符的作用,因此它必須高1像素,並且要在其上添加視圖的寬度。

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

 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,該陰影將被刪除。

我怎樣才能解決這個問題。

謝謝,亞歷克斯

使用約束時,不應使用框架設置。 自動版式將為您完成所有框架設置。

相反,您需要向視圖添加約束:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM