Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GeometryReaderでSwiftUIのViewをキャプチャする

 GeometryReaderでSwiftUIのViewをキャプチャする

potatotips #67 (iOS/Android開発Tips共有会) https://potatotips.connpass.com/event/152899/

登壇資料です。

Sato Takeshi

December 17, 2019
Tweet

More Decks by Sato Takeshi

Other Decks in Technology

Transcript

  1. Who am I
 • Name
 • 佐藤剛士(さとうたけし)
 • Company
 •

    Merpay, Inc.(2019/01 ~)
 • Role
 • Software Engineer (iOS)
 • Account
 • Twitter: @hatakenokakashi
 • Facebook: 佐藤剛士
 • GitHub: SatoTakeshiX

  2. Viewのキャプチャをとるのに必要な情報 • View の Bounds( 矩形情報 ) • View の

    CALayer UIViewにはプロパティとし てあるけど SwiftUIのViewにはな い!
  3. UIViewとSwiftUIの座標情報の取得 フレームワーク 型 プロパティ・メソッド 内容 UIKit UIView frame 親Viewの座標空間 での矩形情報

    UIKit UIView bounds 自身の座標空間で の矩形情報 SwiftUI GeometryReader geometry.frame(in: .global) RootViewの座標空 間での矩形情報 SwiftUI GeometryReader geometry.frame(in: .local) 自身の座標空間で の矩形情報
  4. まとめ:SwiftUIでViewのキャプチャをとるには • GeometryReader で View の矩形情報を取得 • 子 View から親ビューに子の矩形情報を渡す

    • SwiftUI から UIView に UIHostingController で変換 ◦ 渡す View は self ではなくその場でインスタンスを作る • UIView の view.layer.render(in: context) でキャプチャ取得