检查CGPoint是否在每秒数千次CGRect中

时间:2016-11-04 17:57:53

标签: ios drawrect

我在做绘图应用。跟踪用户手指,我得到CGPoint,我需要检查CGPoint是否在我的多个CGRect中。检查没问题。我的代码是这样的。

[self.inputOptionRects enumerateObjectsUsingBlock:^(NSValue *rectValue, NSUInteger idx, BOOL *stop) {
    CGRect keyRect = [rectValue CGRectValue];
    CGRect infiniteKeyRect = CGRectMake(CGRectGetMinX(keyRect), 0, CGRectGetWidth(keyRect), NSIntegerMax);
    infiniteKeyRect = CGRectInset(infiniteKeyRect, -3, 0);

    if (CGRectContainsPoint(infiniteKeyRect, location)) {
        selectedInputIndex = idx;
        *stop = YES;
    }
}];

唯一的问题是,当用户手指移动时,它会产生许多CGPoint(我认为是这样)并且app需要处理这么多次。结果,我的内存使用率急剧上升,应用程序崩溃。有没有更好的方法来处理我的案子?

修改

或者有没有办法在更改cgpoint时进入通知事件并进入其中一个cgrect?如果是这样,我将不需要多次检查。

0 个答案:

没有答案