【iOS】初めてのSwiftUI 【Part1】が長くなりそうだったので、Part2としてこちらに記録します。
それではSwiftUIで新規プロジェクトを作成済みの状態から始めていきます。
環境
・MacOS Ventura 13.0
・Xcode 14.2
・Swift version 5.7.2
【iOS】初めてのSwiftUI 【Part1】が長くなりそうだったので、Part2としてこちらに記録します。
それではSwiftUIで新規プロジェクトを作成済みの状態から始めていきます。
・MacOS Ventura 13.0
・Xcode 14.2
・Swift version 5.7.2
@State var isEnable = true
Toggle(isOn: $isEnable) {
Text("Hello")
}.padding()
@State var text = ""
var body: some View {
TextField("入力", text: $text)
.onChange(of: text) { [text] newValue in
print("変更前:\(text)、変更後\(newValue)")
}
}
Button {
print("Clicked")
} label: {
Text("Button")
}
Button {
print("Clicked")
} label: {
Image("shark")
}
@State var fullName: String = "Taro"
TextField("名前", text: $fullName).textFieldStyle(.roundedBorder)
@State var password: String = ""
SecureField("パスワード", text: $password).textFieldStyle(.roundedBorder)
@State private var value = 50.0
@State private var isEditing = false
var body: some View {
VStack {
Slider(
value: $value,
in: 0...100,
onEditingChanged: { editing in
isEditing = editing
}
)
Text("\(value)")
.foregroundColor(isEditing ? .red : .blue)
}
}
DatePicker("日付を選択", selection: $date, displayedComponents: [.hourAndMinute, .date])
.environment(\.locale, Locale(identifier: "ja_JP"))
@State var selected = 0
var array = ["A", "B", "C"]
var body: some View {
Picker("選択肢", selection: $selected) {
ForEach(0 ..< array.count) {
index in
Text(self.array[index])
.tag(index)
}
}
.pickerStyle(SegmentedPickerStyle())
}
@State var count:Int = 0
var body: some View {
VStack {
Stepper(value: $count, in: -10...10) {
Text("Count \(count)")
}
}
}
var body: some View {
VStack {
Text("シングルタップ")
.onTapGesture {
print("シングルタップを検知")
}
Text("ダブルタップ")
.onTapGesture(count: 2) {
print("ダブルタップを検知")
}
}
}
Text("タップ")
.gesture(
TapGesture()
.onEnded({ _ in
print("タップ終了")
})
)
Text("ドラッグ")
.gesture(
DragGesture(minimumDistance: 50)
.onEnded({ _ in
print("ドラッグ終了")
})
)
Text("ロングプレス")
.gesture(
LongPressGesture(minimumDuration: 2)
.onEnded({ _ in
print("ロングプレス終了")
})
)
List {
Text("A")
Text("B")
Text("C")
}.listStyle(.plain)
List {
Section(header: Text("ヘッダー1")) {
Text("テキスト1")
}
Section(header: Text("ヘッダー2")) {
Text("テキスト2")
}
}.listStyle(.plain)
NavigationView {
Text("テキスト").navigationTitle("タイトル").navigationBarTitleDisplayMode(.inline)
}
Text("テキスト").navigationTitle("タイトル").navigationBarTitleDisplayMode(.inline)
.navigationBarItems(trailing: Button("ボタン", action: {
//
}))
}
TabView {
FirstView()
.tabItem {
Label("First", systemImage: "trash")
}
SecondView()
.tabItem {
Label("Second", systemImage: "pencil")
}
}
VStack {
Group {
Text("text 1")
Text("text 2")
Text("text 3")
Text("text 4")
Text("text 5")
Text("text 6")
Text("text 7")
Text("text 8")
Text("text 9")
Text("text 10")
}
Text("text 11")
}
@State private var alert = false
var body: some View {
Button("Button") {
alert = true
}
.alert(isPresented: $alert) {
Alert(
title: Text("Title"),
message: Text("message"),
dismissButton: .default(Text("OK"))
)
}
}
今回はPart1に引き続きSwiftUIの基本的な部分を実装してみました。
とにかくコード量が少なくて公式のドキュメントもわかりやすかったので、SwiftUIについて一通り学んでおく価値は有ると感じました。