设置自定义视图的 alpha 属性时,iOS 应用程序崩溃

Posted

技术标签:

【中文标题】设置自定义视图的 alpha 属性时,iOS 应用程序崩溃【英文标题】:iOS app crashes when setting alpha property of custom view 【发布时间】:2017-05-23 16:09:58 【问题描述】:

我正在尝试在动画块中设置视图的 alpha 属性,但时不时地(未确定模式)应用程序会在将 alpha 设置为 0 的行中崩溃且没有错误:

self.circularProgressBar.alpha = 0

CircularProgressBar 是一个带有几个 CAShapeLayers 的视图,但我想用动画隐藏整个东西。当我在控制台中检查崩溃时,我可以访问 .alpha 属性并对其进行更新。它大部分时间都有效,只是由于某种原因在某些时候失败了..

它也在主线程中运行,我认为这可能是一个问题,但似乎不是。

任何想法为什么/如何诊断它可能是什么?

【问题讨论】:

确保 view opaque 属性设置为 NO (false)。我认为它很快被命名为 isOpaque。默认为 YES (true) 显示崩溃日志 我没有看到任何崩溃日志。控制台中没有出现任何内容,仅在崩溃的行上返回以下内容 - EXC_BAD_ACCESS (code=EXC_i386_CPFLT)。您会建议在其他任何地方寻找有用的崩溃日志吗?正如我所说,这很奇怪,因为即使它崩溃了,我仍然可以访问视图以及 .alpha 属性,所以不确定它到底是什么失败了。 【参考方案1】:

似乎在主线程中没有调用 alpha 时崩溃了。在这种情况下,有一个上传文件的后台任务,而 alpha 是上传完成以隐藏进度条。

检查和整理线程似乎已经解决了这个问题。

【讨论】:

以上是关于设置自定义视图的 alpha 属性时,iOS 应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章

iOS 7 半透明模态视图控制器

Xamarin iOS 自定义视图

iOS UIButton 总是透明的

单元格聚焦时无法更改子视图的 alpha

如何在 UIButton 的标签子视图上设置 alpha

自定义 UITableView 部分标题 alpha 0