見出し画像

Swiftで行こう!--SwiftUIもっと!5

Playgroundを使ってやっていきます。

今回はボタンなどイベントの処理について試していきます。

import SwiftUI
import PlaygroundSupport

// この場所にコードを書いていきます。

let content = ContentView()
PlaygroundPage.current.liveView = UIHostingController(rootView: content)

基本のコードです。

次スライドボタンです。

struct ContentView : View {

   @State var showGreeting = true

   var body: some View {
       VStack {
           Toggle(isOn: $showGreeting) {
               Text("Show welcome message")
           }.padding()
           if showGreeting {
               Text("Hello World!")
           }
       }
   }
}
@State var showGreeting = true

まず真偽について定義しておきます。ここで大事なのは@Stateですね。

いつもの"var body: some View"の後に表示させる部分を書いていきます。

Toggle()でスイッチの部品を配置していきます。VStackなので縦に表示させます。Text()で文字の表示ですね。そして.paddingで間を開けて、

if showGreeting{}で真偽で判定させ表示部分に変化をつけます。

と表示されスイッチをon,offできるようになりました。

次にTabを紹介します。

  @State private var favoriteColor = 0

   var body: some View {
       VStack {
           SegmentedControl(selection: $favoriteColor) {
               Text("Red").tag(0)
               Text("Green").tag(1)
               Text("Blue").tag(2)
           }
           Text("Value: \(favoriteColor)")
       }
   }

ここではタブ3つを表示させます。tag(0),(1),(2)で識別しています。

それぞれText()で文字も表示させています。そして、"favoriteColor"変数に入れることでタブを切り替えていきます。

SegmentedControl(selection: $favoriteColor)

ですね。そしてその下にText()で現在のタブ名ほ表示します。

  @State private var favoriteColor = 0
   var colors = ["Red", "Green", "Blue"]
   var body: some View {
       VStack {
           SegmentedControl(selection: $favoriteColor) {
               ForEach(0..<colors.count) { index in
                   Text(self.colors[index]).tag(index)
               }
           }
           Text("Value: \(colors[favoriteColor])")
       }
   }

ForEach()でやった方がスッキリしますね。

そして次はタップアクション。これすごく簡単!

Text("Tap me!")
   .tapAction {
       print("Tapped!")
   }
.tapAction {
print("Tapped!")
}

これつけるだけでいけます。

.tapAction(count: 2)

そしてcount:numbernumberの数だけのタップでアクションが起きるようになります。

この記事が気に入ったらサポートをしてみませんか?