- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我今天遇到了一个有趣的 iOS 问题,涉及 CATiledLayer。这只发生在设备上 - 而不是在模拟器中。
我的 View 通过 drawLayer: inContext: 委托(delegate)回调在其 CALayer 中绘制。该层有一个 CATiledLayer 派生的子层,它在重写的 drawInContext: 方法中进行自己的绘制。
两个层都通过 CGContextDrawPDFPage() 渲染 pdf 内容。 (CALayer 绘制低分辨率版本,而 CATiledLayer 子层在顶部绘制高分辨率内容。)
我遇到了一个场景,我将完成 View - 将它从它的 super View 中删除并释放它。 dealloc() 在 View 上被调用。稍后,系统将调用 CATiledLayer 的 drawInContext: 方法(在后台线程上)。它会绘制,但在从 Springboard 方法返回时会崩溃,并且在这样做时,也会关闭我的应用程序。
我通过在 CATiledLayer 中设置一个标志来修复它,告诉它不再从 View 的 dealloc 方法中渲染。
但我只能想象有一种更优雅的方式。为什么CATiledLayer drawInContext: 方法在父层之后仍然被调用,并且父层的 View 被释放?关闭 View 以免发生这种情况的正确方法是什么?
最佳答案
修复速度较慢但最好的方法是同时设置 view.layer.contents = nil
。这会等待线程完成。
关于ios - 关联 View 消失后调用的 CATiledLayer drawInContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4029096/
我的代码遇到了很大的困难。我正在开发一个显示歌词和和弦的应用程序。我使用两个重叠的textview分隔了和弦和歌词。 我在这个项目中遇到的问题是音高改变功能。我尽我所能向我解释得更好: 和弦总数为12
我有一个游戏并使用 Tune 作为分析库。使用最新的 Unity (5.3.4f1) 并通过 Unity 获取 apk(无 eclipse/android studio)。 我的游戏在 Play 商店
我是一名优秀的程序员,十分优秀!