Как найти пересечение двух CAShapelayer

У меня более одного CAShapeLayer. При перетаскивании двух слоев мне нужно найти, не пересекаются ли они.

Но я попытался по-своему вычислить пересечение кадров и пересечение точек. Но он всегда возвращает кадр как CGRectMake(0,0,0,0), я имею в виду ноль для всех кадров слоев, а также позиция тоже становится нулевой.

Если кто знает подскажите.


person Krish    schedule 07.08.2014    source источник
comment
Вы пробовали CGRectIntersection()?   -  person kelin    schedule 07.08.2014
comment
Вы хотите проверить, пересекаются ли слои или пути в слоях?   -  person Nikolai Ruhe    schedule 07.08.2014
comment
Имеют ли слои общий суперслой?   -  person Nikolai Ruhe    schedule 07.08.2014
comment
Вызов CGRectStandardize рекомендуется, если вы выполняете пользовательские вычисления для кадров. Может случиться так, что у них будут странные определения.   -  person Lev Landau    schedule 07.08.2014
comment
Покажите свой код и опишите, что именно у вас не работает.   -  person Nikolai Ruhe    schedule 07.08.2014


Ответы (1)


Пытаться

if (CGRectIntersectsRect(layer1.frame, layer2.frame))
{
   /* Do something when the intersect.
}

Я ценю, что вы, возможно, захотите узнать, пересекаются ли пути, что является более сложным расчетом, обсуждаемым здесь

person Lev Landau    schedule 07.08.2014