如何绕过进度视图的角落(高度增加)

目标:

问题:增加进度条的高度会破坏角半径。 拐角处不会圆滑。

增加高度

如果您搜索如何增加UIProgressView的高度,则可能会遇到答案:

  progressBar.transform = progressBar.transform.scaledBy(x:1,y:8) 

很简单。

拐弯处

如果您搜索如何绕过进度条的角落,则可能会遇到此Stack Overflow帖子。

它告诉您设置拐角半径,然后裁剪到边界:(子层是这样,因此内部栏也具有圆角。)

  progressBar.layer.cornerRadius = 8 
  progressBar.clipsToBounds = true 
  progressBar.layer.sublayers![1] .cornerRadius = 8 
  progressBar.subviews [1] .clipsToBounds = true 

问题在于将它们放在一起会导致:

显然这不是我们想要的。

解决方案

无需使用.transform来增加高度,而是需要在进度条上使用高度约束。

这将增加高度,.cornerRadius将按预期方式工作。

TL; DR

使用高度约束来增加进度栏的大小。

然后,您可以使用.cornerRadius和.c​​lipsToBounds圆角化。