[英]UIProgressView corner radius changing when updating progress
UIProgressView
有它自己的標准高度,並不是真的要改變。 當您設置自定義約束時,您可能會破壞進度視圖的原始約束。 每次UIProgressView
使用layoutSubviews()
重新加載其布局並將其設置為當前高度的 50% 時,您的自定義角半徑可能會被覆蓋。
我看到這個問題有兩種解決方案。
這將是一個首選,只需創建自定義進度視圖,不用擔心打破任何約束和改變角落!
UIProgressView 可能會在調用layoutSubviews()
時改變其角落,因此您可以做的是嘗試通過覆蓋視圖/單元格中的方法將其設置回您想要的值。
override func layoutSubviews() {
super.layoutSubviews()
greenBar.layer.cornerRadius = 0.2
redBar.layer.cornerRadius = 0.2
}
如果這還不夠,請嘗試不同的地方,例如prepareForReuse()
的layoutIfNeeded()
) 等。
作為使用高度約束的替代方法,您可以進行變換,但是進度條在側面看起來有點有趣。
// x: 1 - keeps the dimention the same size
// y: 10 - makes the height 10x bigger
greenBar.transform = CGAffineTransform(scaleX: 1, y: 10)
第二種解決方案並不是一個好的建議,因為您會發現自己一直在與原始實現作斗爭。 UIProgressView
不是按照您的使用方式設計的,所以我強烈建議您嘗試解決方案 1並實現您自己的視圖,您可以在其中設置規則:) 祝你好運!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.