Я не совсем понимаю, я думаю. Разве «непересекающаяся область» CGRect A с другим B - это просто область A минус пересекающаяся область? Или, более точно, разве процентное перекрытие не равно просто пересеченной области, деленной на общую общую площадь:
Area(A ^ B)/(Area(A) + Area(B) - Area(A^B))
(Кстати, я не думаю, что вы хотите иметь дело с RectUnion, так как в нем потенциально может быть много места ни в A, ни в B.)
Да, и по вашему первоначальному вопросу, это выходит за рамки моих графических способностей, но основной метод, кажется, состоит в том, чтобы нарисовать оба Пути в графическом контексте (возможно, с XOR) и посмотреть, какие пиксели все еще остаются. Кажется, здесь есть некоторый код, указывающий путь: Обрезка CGPath до CGRect