UIView drawRect 安静崩溃

Posted

技术标签:

【中文标题】UIView drawRect 安静崩溃【英文标题】:UIView drawRect Quiet Crash 【发布时间】:2012-02-12 06:23:05 【问题描述】:

听起来很简单。我有一个带有 UIImageView 子视图(标准)的自定义 UIScrollView 类。 UIImageView 包含一个 UIView(派生类)作为带有自定义 drawRect 调用的子类。

在模拟器上,一切正常:滚动视图显示、平移、缩放;图像填充滚动视图的内容;我的 UIView 绘制在图像之上。

在我的 iPod touch 上,每当加载此视图时,程序就会崩溃。没有错误消息或堆栈跟踪。任何地方都没有调试中断。没有内存不足警告。该程序只是简单地退出。

这是关键:如果我从 drawRect 函数中删除所有内容以使其完全为空,它仍然会崩溃(我也尝试只留下 [super drawRect] 无济于事)。但是,如果我完全删除整个方法,那么它可以在 iPod 上正常运行——不会崩溃,但也不会显示我的自定义绘图。

有人知道为什么吗??

【问题讨论】:

【参考方案1】:

为什么我认为它崩溃了:内存问题。

我的解决方案:使用 UILabels 和 UIImageViews 构建我的自定义 UI。无论如何,显示速度要快得多并解决了问题。

【讨论】:

以上是关于UIView drawRect 安静崩溃的主要内容,如果未能解决你的问题,请参考以下文章

drawrect 在非常大的 uiview 和内存不足

手动调用 Drawrect

当我覆盖“drawRect”时,UIButton 样式设置被忽略

加速 -drawRect: UIView 子类的方法

使用drawrect自定义UIView动画

UIView 在后台调用 drawRect