Почему границы UIView - это CGRect, а не CGSize? - PullRequest
5 голосов
/ 02 июля 2011

Существует ли причина, по которой свойство bounds UIView (NSView) равно CGRect, когда единственная информация, которую вы когда-либо захотите получить в этом свойстве, это размер этого CGRect.

Это просто ярлык для рисования, поскольку при рисовании вам понадобится CGRect? Или просто особый особый случай, когда origin из bounds может быть чем-то другим, чем {0, 0}?

Ответы [ 2 ]

7 голосов
/ 02 июля 2011

frame указывает, где представление относительно суперпредставления, а bounds указывает, где разрешено рисовать представление относительно кадра.

Путем изменения источника bounds и / илиширину, которую вы можете получить, например, вырезать или нарисовать за пределами вида.

Т.е. начало координат обычно (0,0), но это не всегда должно быть так, как при выполнении отсечения.

Кроме того, bounds используется аффинными преобразованиями вместоframe и представляет позицию после преобразования, которая также может иметь происхождение, отличное от (0,0);

0 голосов
/ 02 июля 2011

Bounds

границы внутри UIView означают ширину и высоту.

(ширина, высота);

Рама

кадр - это место, где он должен начинаться относительно своего суперпредставления и его границ

(от x, от y, ширина, высота);

отправная точка из суперпредставления + его граница

...