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

CGRectGetWidth vs CGRect.size.width

Что лучше использовать? Я предпочитаю CGRect.size.width, потому что он выглядит лучше. Но, мой коллега говорит, что CGRectGetWidth лучше.

4b9b3361

Ответ 1

CGRectGetWidth/Height будет нормализовать ширину или высоту перед их возвратом. Нормализация в основном просто проверяет, является ли ширина или высота отрицательной, и отрицает ее, чтобы сделать ее положительной, если это так.

Ответ здесь

Ответ 2

Прямая ширина и высота могут быть отрицательными. Я понятия не имею, когда это было бы правдой на практике, но согласно Apple docs:

CGGeometry Reference определяет структуры для геометрических примитивов и функции, которые действуют на них. Структура данных CGPoint представляет точка в двумерной системе координат. Структура данных CGRect представляет местоположение и размеры прямоугольника. Данные структура CGSize представляет размеры ширины и высоты.

Высота и ширина, хранящиеся в структуре данных CGRect, могут быть отрицательный. Например, прямоугольник с началом [0.0, 0.0] и размер [10,0,10,0] в точности эквивалентен прямоугольнику с происхождение [10,0, 10,0] и размер [-10,0, -10,0]. Ваше приложение может стандартизировать прямоугольник, т.е. обеспечить высоту и ширину сохраняются как положительные значения - путем вызова CGRectStandardize функция. Все функции, описанные в этой ссылке, принимают CGRect структуры данных в качестве входных данных неявно стандартизируют эти прямоугольники прежде чем рассчитывать их результаты. По этой причине ваши приложения следует избегать прямого чтения и записи данных, хранящихся в Структура данных CGRect. Вместо этого используйте описанные здесь функции манипулировать прямоугольниками и извлекать их характеристики.