You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS 15系统下ARSLineProgress组件无法隐藏问题求助

问题根因

  • 你使用的ARSLineProgress仓库已停止维护超过7年,未适配iOS15及以上系统。iOS15对UIKit隐式动画规则、主队列UI任务调度优先级做了调整,原有库的ars_hideLoader方法内部逻辑不再适配新系统。
  • ars_hideLoader方法没有强制将UI操作派发至主队列执行,iOS15之后非主队列的UI操作大概率会被系统丢弃,导致隐藏动画不触发、进度条残留。
  • 部分场景下iOS15的视图层级变动会导致全局变量ars_currentLoader取值为空,隐藏方法实际未执行对应的视图移除逻辑。

解决方案

方案1:无侵入临时修复(无需修改库源码)

调用隐藏方法时,强制将代码派发至主队列执行即可:

DispatchQueue.main.async {
    ARSLineProgress.hide()
}

方案2:修改库源码彻底修复

找到ars_hideLoader的实现文件,将方法内部的所有逻辑包裹在主队列调度代码中:

public static func hide() {
    dispatch_async(dispatch_get_main_queue(), ^{
        ars_hideLoader(ars_currentLoader, withCompletionBlock: nil)
    });
}

方案3:长期适配建议

如果后续需要持续兼容新的iOS系统版本,建议替换为仍在维护的轻量级进度条控件,避免后续系统升级再次出现兼容性问题。

内容的提问来源于stack exchange,提问作者Mujtaba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 01:06:03