UIProgressView的问题在高度增加并且圆角变圆后无法顺利运行

问题描述 投票:1回答:1

我遇到了UIProgressView的问题(使用Xcode 11.5和当前的Swift版本)。我的目标是创建一个进度条,该进度条具有增加的高度(相对于Apple标准高度)和圆角,可以平滑地表示播放的音频文件的进度。

intended progress bar style

我可以通过将界面生成器中的高度约束与以下代码结合起来,轻松实现所需的外观:

audioProgress.layer.cornerRadius = bubble.frame.size.height / 3
audioProgress.clipsToBounds = true

但是,我遇到的问题是进度条从一开始就没有平滑地开始-而是跳到大约1/3的条上(根据设备大小而变化)并停在那里,直到音频“捕获”为止向上”,从该位置继续平稳运行直至结束。

我确保这不是我的代码中的错误,例如音频文件,计时器等,而是一些布局问题。例如。一旦将条形的高度更改回苹果的标准高度,进度就会显示出来。

我可以通过使用以下代码来增加钢筋的高度(而不是约束)来避免这种奇怪的行为:

let transform: CGAffineTransform = CGAffineTransform(scaleX: 1.0, y: transformFactor)
audioProgress.transform = transform

但是,这不再允许我如上图所示对角进行圆角处理,因为layer.cornerRadius和CGAffineTransform命令的组合会导致出现奇怪的拐角,如其他文章中所示。

所以我的两个问题是:

  1. 谁能解释一下造成这种奇怪的行为的原因,因为这种行为最初会使杠铃跳跃和停止一会儿吗?以及如何避免呢?

  2. 如果仅使用CGAffineTransform命令,是否还有其他方法可以实现圆角?例如。 ……沿着“先改变高度,然后再绕过拐角”的方式(与相反的方式相反,据我所知,这会导致外观偏斜...)

swift uiprogressview
1个回答
0
投票

尝试一下-

    audioProgress?.layer.cornerRadius = bubble.frame.size.height / 3
    audioProgress?.layer.masksToBounds = true
© www.soinside.com 2019 - 2024. All rights reserved.