BETA

SwiftUI Tutorial 1: Creating and Combining Views

投稿日:2019-09-01
最終更新:2019-09-01

https://developer.apple.com/tutorials/swiftui/creating-and-combining-views

  • とにもかくにも、ビューがプロトコルとなり、struct として定義される衝撃。2019年、忘れることはないだろう
    struct ContentView: View {}

  • 1つの body プロパティは、1つのビューしか返さない。
    var body: some View {}

だから、構造を伴って複数のビューを返すのに必要なのは、Stacks

  • VStack のデフォは中央揃え
  • modifier padding() の書き方

    • VStack {}.padding()
    • VStack {}.padding(.leading, 40)
    • VStack {}.padding([.leading, .top], 40)
    • VStack {}.padding([.leading, .top], 40).padding([.bottom], 20) // 複数異なる設定を指定できる
  • UIView群をSwiftUIと混ぜて使うには、それを UIViewRepresentable に適合したSwiftUIのビューでラップする
    × struct xxView: View {}
    ○ struct xxView: UIViewRepresentable {}

  • UIViewRepresentable は、2つのメソッドへの適合を要求する
    makeUIView(context:) -> MKMapView(MapView.UIViewType) // !?!?UIViewTypeなんてものがオリジナルのクラスに突然生えてきた?この構造はぜひとも研究する必要がある
    updateUIView(_:context:)
  • そしてこの定義も興味深い
protocol UIViewRepresentable {  
    typealias Context = UIViewRepresentableContext<Self>  // 型パラSelf!!かっこえぇ  
}  
  • コンポーネント化したビューをコンポジションするのは、こう。
    ふつーにイニシャライザ呼ぶだけ。
    めちゃかんたん!!
VStack {  
    MapView().frame(height: 300)  // width を省略すると、暗黙裏に横幅いっぱいになる  
    CircleImage().offset(y: -130).padding(.bottom, -130)  
}  

感想

各UIパーツの属性を、がしがしチェーンで書く、という世界観に慣れること。Textが典型。

Text("ヨシュア・トゥリー公園").font(.subheadline)

第1章からAPIの定義がひたすらにオシャレ。シンプルでイージーなシンタックスはバリバリの抽象化に裏打ちされている。世界は美しい。

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

備忘録ほどの価値もない走り書き

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
or 外部アカウントではじめる
10秒で技術ブログが作れます!