CGSize
CGSize
- ширина и высота. Технически это не считается прямоугольником (это одна из причин, по которой я сначала перепутал его с CGRect
), а скорее просто размером. Однако для иллюстрации я представлю его в виде прямоугольника ниже:
Эта комбинация ширины и высоты известна как структура, что является сокращением от структуры, и первоначально происходит из языка C (но здесь я буду использовать синтаксис Swift, а не Objective C). Структура - это просто группа логически связанных переменных. Здесь мы видим структуру CGSize
:
struct CGSize {
var width: CGFloat
var height: CGFloat
}
где CGFloat
- это либо float
(32 бит), либо double
(64 бит). (См. Какая разница между использованием CGFloat и float?)
Вы можете сделать CGSize
, выполнив следующие действия:
var size = CGSize(width: 50, height: 30)
CGRect
CGRect
- прямоугольник. Что не сразу видно из названия, так это то, что помимо ширины и высоты оно также имеет происхождение.
CGsize
, для сравнения, не имеет происхождения.
CGRect
также является структурой. На самом деле, это структура структур: CGPoint
(начало) и CGSize
(ширина и высота). Вот:
struct CGRect {
var origin: CGPoint
var size: CGSize
}
где CGPoint
struct CGPoint {
var x: CGFloat
var y: CGFloat
}
Вы можете сделать CGRect
, выполнив следующие действия:
var rect = CGRect(origin: CGPoint(x: 0, y: 0), size: CGSize(width: 50, height: 30))
Отрицательная ширина и высота
Значения ширины и высоты могут быть отрицательными. Мы можем увидеть, как это выглядит с CGRect
. Обратите внимание, как начало координат появляется в разных углах:
Векторы
Документация для CGSize говорит
Структура CGSize
иногда используется для представления вектора расстояния, а не физического размера. Как вектор, его значения могут быть отрицательными. Чтобы нормализовать структуру CGRect
, чтобы ее размер был представлен положительными значениями, вызовите функцию CGRectStandardize
.
Векторы в математике имеют величину (или длину) и направление. Хотя CGSize
не имеет начала координат, на следующей диаграмме видно, как ширина и высота вместе с соответствующими положительными или отрицательными значениями дают длину и направление.
Дальнейшее чтение
person
Suragch
schedule
05.06.2015