Какао NSRect ВНЕ пересечения - PullRequest
1 голос
/ 18 июля 2011

У меня есть две части, которые пересекаются. Они имеют одинаковые размеры, с той лишь разницей, что один из них расположен ниже экрана, чем другой. Я знаю, что есть способ получить прямоугольник их пересечения, но это не то, что я хочу. Я на самом деле хочу новый прямоугольник из области, которая находится за пределами их пересечения.

Верхняя часть нижнего вида пересекается с нижней частью верхнего вида. Новый прямоугольник не должен иметь этой области. Я в основном хочу прямоугольник с тем же происхождением и шириной, что и вид снизу, но без части, которая пересекается с верхним прямоугольником.

Спасибо за помощь.

1 Ответ

2 голосов
/ 18 июля 2011
CGRect intersectRect = CGRectIntersection(highestRect, lowestRect);

CGRect theRectYouWant = CGRectMake(0, 0, 0, 0);

if(!CGRectIsNull(intersectRect)) {
    theRectYouWant = 
        CGRectMake(lowestRect.origin.x,
                   intersectRect.origin.y + intersectRect.size.height,
                   lowestRect.size.width,
                   lowestRect.size.height - intersectRect.size.height);
}

Взгляните на эту страницу, Elbimio;)

...