Подтвердить что ты не робот

Есть ли разница между CGRect и NSRect?

Есть ли разница между a CGRect и NSRect? В частности, мне интересно узнать о происхождении. Есть ли какие-то важные различия, о которых мне нужно знать?

4b9b3361

Ответ 1

Они одинаковы. Эта ссылка содержит дополнительную информацию. Скопировано здесь для быстрой справки:

CGRect - эквивалент Coregraphics NSRect.

Они намеренно сделаны так же, как и в памяти. Таким образом, разрешено преобразовывать NSRect в CGRect, делая следующее:

CGRect cgrect = *(CGRect *)&nsrect;

CoreGraphics также предоставляет функцию CGRectMake(), которая работает так же, как NSMakeRect() (обратите внимание на отмену глагола и объекта в именах), за исключением того, что возвращает CGRect.

Ответ 2

В частности, я задаюсь вопросом о позиции происхождения.

Это зависит от того, где вы получили прямой и где вы его используете. В общем случае Core Graphics и UIKit используют перевернутые координаты (начало слева вверху, положительное у вниз), тогда как AppKit использует unflipped-координаты (начало слева внизу, положительное y растет). Но с каждого API можно перевернуть или отменить координаты, а некоторые классы, такие как NSImage и NSView, делают это очень легко.