UnitPointはViewの相対的な位置を定義する構造体です。
用途としては、例えばrotationEffectを使ってViewを回転する時の中心点の指定などがあります。
環境
この記事の情報は次のバージョンで動作確認しています。
【Xcode】11.4.1
【Swift】5.2
【iOS】13.4.1
【macOS】Catalina バージョン 10.15.4
【Swift】5.2
【iOS】13.4.1
【macOS】Catalina バージョン 10.15.4
基本的な使い方
1 2 3 |
UnitPoint(x: CGFloat, y: CGFloat) |
引数(x)と引数(y)で位置を示します。
(x: 0.0, y: 0.0)がViewの左上、(x: 1.0, y: 1.0)がViewの右下、(x: 0.5, y: 0.5)がViewの中央を表します。
マイナス値や1.0より大きい数値は、Viewフレーム外の位置を指します。
使用例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import SwiftUI struct ContentView: View { var body: some View { ZStack { /// 標準表示 Text("カピ通信") .padding() .background(Color.green) /// Viewの左枠外を中心に回転表示 Text("カピ通信") .padding() .background(Color.yellow) .rotationEffect(Angle(degrees: -45), anchor: UnitPoint(x: -0.2, y: 1.0)) } .font(.largeTitle) } } |
プロパティによる位置指定
xとyで指定する代わりに、下記に示すプロパティによる位置指定も可能です。
.topLeading左上(x: 0.0, y: 0.0) | .top上(x: 0.5, y: 0.0) | .topTrailing右上(x: 1.0, y: 0.0) |
.leading左(x: 0.0, y: 0.5) | .center中央(x: 0.5, y: 0.5) | .trailing右(x: 1.0, y: 0.5) |
.bottomLeading左下(x: 0.0, y: 1.0) | .bottom下(x: 0.5, y: 1.0) | .bottomTrailing右下(x: 1.0, y: 1.0) |
使用例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import SwiftUI struct ContentView: View { var body: some View { ZStack { /// 標準表示 Text("カピ通信") .padding() .background(Color.green) /// Viewの左上を中心に回転表示 Text("カピ通信") .padding() .background(Color.yellow) .rotationEffect(Angle(degrees: -45), anchor: UnitPoint.topLeading) } .font(.largeTitle) } } |
あわせて読みたい記事
【Swift】CGSizeの使い方
CGSizeは幅と高さの情報を保持する構造体です。 物理的なサイズだけでなく、距離ベクトルを表す為に使用される事もあります。 ベクトルとしてその値は負になる可能性もあります。