【问题标题】:Does drawRect: automatically check whether something is within the bounds of the CGRect passed to it?drawRect: 是否自动检查是否在传递给它的 CGRect 范围内?
【发布时间】:2011-07-23 13:19:04
【问题描述】:

我想知道是否需要检查是否在传递给 drawRect: 的 CGRect 范围内,或者 drawRect: 是否会自动为我处理。

例如,假设我在屏幕上有 10 个UIBezierPaths。每条曲线都位于名为curvesNSMutableArray 中。每次调用drawRect: 时,它都会遍历这个数组并绘制它在那里找到的曲线。如果用户移动一条曲线,我发现它包含CGRectcall [self setNeedsDisplayInRect:containingRect]。在我的drawRect: 实现中,我是否需要亲自检查每个UIBezierPaths 是否属于传递给drawRect:CGRect(使用CGRectIntersectsRect),还是自动处理?

【问题讨论】:

  • 不检查会怎样?有用吗?
  • 它不会自动处理。你必须
  • 垫 - 是的,它有效。但这可能是因为它只是重绘整个屏幕,而不仅仅是传递给 drawRect 的脏矩形:
  • @vijay - 这就是我的怀疑。

标签: ios cocoa-touch drawing drawrect


【解决方案1】:

这属于一类优化,如果您在分析后认为有必要,则必须自己进行。

不幸的是,UIKit 没那么聪明。虽然如果是这样可能会太慢!

【讨论】:

    猜你喜欢
    • 2023-04-03
    • 2017-07-13
    • 2017-05-28
    • 2014-12-05
    • 1970-01-01
    • 2017-04-13
    • 2021-03-30
    • 2016-05-03
    • 2015-11-28
    相关资源
    最近更新 更多