ビューをドラッグできるビュー階層を考えると、ドラッグされたビューと他のビューの間の衝突を検出するための最も効率的な方法は何ですか?
これは、(擬似コードでの)ブルートフォースアプローチになります。
- (void) onDrag
{
CGRect absoluteDraggedViewRect; // Calculate
for (UIView *otherView in hierarchy)
{
CGRect absoluteOtherViewRect; // Calculate
if (CGRectIntersectsRect(absoluteDraggedViewRect, absoluteOtherViewRect))
{
// Collision!
}
}
}
上記のコードをどのように改善しますか?