CGRectとは
CGRectとは
A structure that contains the location and dimensions of a rectangle.
renctangleとは
rectangleは長方形といった意味です。iOSにはCGRect
という構造体が設けられていますが、これはCoreGraphicsというグラフィックのための領域で利用される長方形を表したものです。長方形というのは必然的に縦横の大きさを持つわけですが、グラフィックとしては表示される以上位置も必要になります。
CG(CoreGraphics) + Rectangle
recgtangleとはで述べたように、iOSのグラフィックスに関してはCoreGraphicsという領域があります。その中に含まれているグラフィックのための中心的な構造体にはCG
から始まる名称を与えられています。文字通り、CoreGraphicsを短略した言葉です。
たとえば、
- struct CGFloat
The basic type for floating-point scalar values in Core Graphics and related frameworks.
- struct CGPoint
A structure that contains a point in a two-dimensional coordinate system.
- struct CGSize
A structure that contains width and height values.
- struct CGVector
A structure that contains a two-dimensional vector.
いずれもグラフィックを構成するために必要とされるような値であることがわかります。
すでに述べたように、CGRect
というのはCoreGraficで描写される長方形を表した構造体であり、長方形である以上は縦横の大きさを持つわけですが、グラフィックとしては表示される位置も必要になります。
大きさはsize
縦横の大きさは、英語ではsizeとなります。
位置はorigin
そして、その位置は座標x,yで示されるoriginです。
このsizeとoriginという2つの要素によって決まるのがCGRect
です。このように考えると、次のCGRect
のイニシャライザで与えられている引数の意味が理解できます。
init(origin: CGPoint, size: CGSize)
//Creates a rectangle with the specified origin and size.
init(x: Double, y: Double, width: Double, height: Double)
//Creates a rectangle with coordinates and dimensions specified as floating-point values.
init(x: Int, y: Int, width: Int, height: Int)
//Creates a rectangle with coordinates and dimensions specified as integer values.
init(x: CGFloat, y: CGFloat, width: CGFloat, height: CGFloat)
//Creates a rectangle with coordinates and dimensions specified as CGFloat values.
CGRectがなぜ重要か
CGRect
は、Viewのframeやboundsに与えられる型でもあります。その一点で、グラフィックを扱う以上、理解しておかなければならない重要な型と言えます。
frameとは
The frame rectangle, which describes the view’s location and size in its superview’s coordinate system.
親Viewを基準とした相対的な位置と大きさを表すrectangle(長方形)
boundsとは
The bounds rectangle, which describes the view’s location and size in its own coordinate system.
View自身を基準とした相対的な位置と大きさを表すrectangle(長方形)
参考
Discussion