swift - 增加高度和圆角后,UIProgressView 无法顺利运行的问题
问题描述
我遇到了 UIProgressView 的问题(使用 Xcode 11.5 和当前的 Swift 版本)。我的目标是创建一个高度增加(相对于 Apple 标准高度)和圆角的进度条,它代表了播放音频文件的进度。
通过将界面生成器中的高度约束与以下代码相结合,我可以轻松实现所需的外观:
audioProgress.layer.cornerRadius = bubble.frame.size.height / 3
audioProgress.clipsToBounds = true
但是,我遇到的问题是进度条从一开始就没有顺畅地开始——而是跳到进度条的大约 1/3 处(根据设备大小而变化)并停在那里,直到音频“赶上”在那个位置上,它从那里继续平稳运行直到结束。
我确保这不是我的代码重新音频文件、计时器等中的错误,而是一些布局问题。例如,一旦我将栏的高度更改回 Apple 的标准高度,进度就会显示出来。
我可以通过使用下面的代码来增加栏的高度(而不是约束)来避免这种奇怪的行为:
let transform: CGAffineTransform = CGAffineTransform(scaleX: 1.0, y: transformFactor)
audioProgress.transform = transform
但是,这不再允许我如上所示圆角,因为 layer.cornerRadius 和 CGAffineTransform 命令的组合会导致奇怪的倾斜角,如其他帖子所示。
所以我的两个问题是:
谁能解释一下是什么导致了这种奇怪的酒吧跳动和停止一段时间的行为?以及如何避免?
如果使用 CGAffineTransform 命令是唯一的方法——还有其他方法可以实现圆角吗?例如,沿着“首先改变高度,然后才绕过角落”的路线(而不是反过来做,在我看来,这会导致歪斜的外观......)
解决方案
尝试这个 -
audioProgress?.layer.cornerRadius = bubble.frame.size.height / 3
audioProgress?.layer.masksToBounds = true
推荐阅读
- python - attr.asdict(x) 和 x.__dict__ 有什么区别?
- python - 使用并行计算的 for 循环
- view - Maximo:如何在主要对象为视图的应用程序中启用列表选项卡中的搜索
- c# - 泛型类约束多级继承
- angularjs - 手动插入一次性绑定
- javascript - How can I make a function to program Chrome to set itself the "Break" status at my workplace
- laravel - Predis: Error while reading line from the server. [tcp://127.0.0.1:6379]
- flutter - SliverPersistentHeader with ListViewBuilder causing strange scrolling issue
- python - 暗网重量训练'断言'0'失败'
- docker - How to generate the Dockerfile from an official image?