- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的应用程序中有一个自定义 View (继承自 UIView
)。自定义 View 覆盖- (void) drawRect:(CGRect) rect
问题是:drawRect:
在 iPad 3 上执行的时间比在 iPad 2 上长很多倍(在 iPad 3 上大约 0.1 秒,在 iPad 2 上大约 0.003 秒)。它慢了大约 30 倍。
基本上,我使用了一些预先创建的图层并将它们绘制在 drawRect:
中。 .最后一次通话
CGContextDrawLayerAtPoint(context, CGPointZero, m_currentLayer);
drawRect:
中)
setNeedsDisplay:
在一个线程和
drawRect:
被另一个人打电话,但就是这样。锁也是如此(没有使用锁)。
最佳答案
所以,iPad 3 在很多方面肯定要慢一些。我对此有一个理论。 Marco Arment noted该方法renderInContext
在新 iPad 上速度慢得离谱。在尝试为自定义 TextView 创建放大镜时,我也发现了这种情况。最后我不得不放弃renderInContext
用于自定义核心图形绘图。
我在击中可怕的 wait_fences
时也遇到了问题我在这里绘制的核心图形错误:Only on new iPad 3: wait_fences: failed to receive reply: 10004003 .
这是我到目前为止所知道的。 iPad 3 显然有 4 倍的像素来驱动。这可能会在两个地方引起问题:
wait_fences
错误,我认为这只是一个调用,告诉设备等待更长的时间才能实际执行旋转,从而延迟。 setNeedsDisplayInRect:(CGRect)rect
.用这个方法代替普通的
setNeedsDisplay
并确保您的
drawRect
方法只绘制给它的矩形可以极大地帮助性能。我个人使用函数:
CGContextClipToRect(context, rect);
仅将我的绘图剪辑到提供的矩形。
setNeedsDisplay
)。现在我让我的 CoreText 对象计算更改后的 CGRect 并使用
setNeedsDisplayInRect
仅更改包含文本的 View 部分。这确实有助于我在滚动时的表现。
关于ios - CGContextDrawLayerAtPoint 在 iPad 3 上很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11100984/
我的应用程序中有一个自定义 View (继承自 UIView )。自定义 View 覆盖 - (void) drawRect:(CGRect) rect 问题是:drawRect:在 iPad 3 上
我有一个 CAShapeLayer 并试图通过将它传递给 CGContextDrawLayerAtPoint 来绘制它,但是在将 CAShapeLayer *__strong 的可保留参数传递给需要
我正在研究 Core Graphics 来为我的项目制作动态纹理。 一个 friend 告诉我应该使用 CGLayerCreate 和 CGContextDrawLayerAtPoint改进我正在构建
我是一名优秀的程序员,十分优秀!