[iPhone] iOSアプリで図形を描画するにはUIBezierPathを使う

iOSアプリに◯や三角などの図形を描きたい事は多いです。そんな時はUIBezierPathを使います。iOSでのグラフィックスの扱い方について見てみましょう。


Swift 5.1
Xcode 11.3.1

UIBezierPath

bezier とはベジェ(Bezier)曲線からきているのでしょうか?とすると自由曲線が描けるわけです。まず、ここでは簡単な矩形や楕円などの描画方法を試してみます。
iOS UIBezierPath Class Reference

UIView クラスを作成して直線を描く

まず押さえるところとして。UIViewからのクラスを作り、それを UIViewController から呼び出して使います。

ナビゲーションエリアでプロジェクトを右クリックして
新しくクラスを作成します



「iOS」->「Source」->「Cocoa Touch class」



Subclass of には UIView を指定します。
ここでは TestDraw というクラスを追加



プロジェクトのフォルダ内に保存先を指定して「Create」します

TestDraw.swiftが生成されます


override func drawRect(_ rect: CGRect){ }

がコメントアウトされているので、ここにUIBezierPath を使ってコードを記述します。

  1. UIBezierPath のインスタンス生成
  2. 起点の設定
  3. 帰着点をセット
  4. 色の設定
  5. ライン幅
  6. 描画セット

TestDraw.swift


ViewControllerから TestDraw を呼び出し、描画するフレームサイズを指定して
インスタンスを生成しview に追加します。

self.view.bounds.width
self.view.bounds.height

としてスクリーンの横幅と縦幅を取得

ViewController.swift


描画領域 TestDraw はデフォルトでは不透明で黒くなっています。
isOpaque = true




図形を描画

その他にも図形を描画するメソッドがあります

  • 三角形
  • 楕円(円も含む)
  • 矩形
  • 角が丸い矩形
  • 円弧

また、黒の背景色を変更するには先のisOpaqueをfalseに設定します
ViewController.swift

 

UIViewのコードです

TestDraw.swift

背景色をブルーにしました。



References:
iOS UIBezierPath Class Reference
isOpaque — UIView | Apple Developer Documentation