Когда вы используете CGRectIntersectsRect (), вы получаете CGrect, который является пересечением обоих прямоугольников, поэтому, основываясь на площади этого прямоугольника, вы можете получить, если его больше 50%.
Примерно так:
CGrect *interRect = CGRectIntersection(rect1, rect2);
if ((interRect.size. width * interRect.size.height) > (rect2.size. width * rect2.size.height*0.5) return Yes;
Я умножаю ширину * высоту, чтобы получить площадь прямоугольника.