SwiftUI Essentials (SwiftUI の本質)

ユーザー入力の処理



訳注:以下、必要な場所においては Mac と iPhone 両方のセクションを提供しています。
Mac → セクション 2、iPhone → セクション 102 とします。







    LandmarkList.swift


  1. import SwiftUI
  2. struct LandmarkList: View {
  3. var body: some View {
  4. NavigationView {
  5. List(landmarks) { landmark in
  6. NavigationLink(destination: LandmarkDetail(landmark: landmark)) {
  7. LandmarkRow(landmark: landmark)
  8. }
  9. }
  10. .navigationTitle("Landmarks")
  11. }
  12. }
  13. }
  14. struct LandmarkList_Previews: PreviewProvider {
  15. static var previews: some View {
  16. LandmarkList()
  17. }
  18. }




上記のリストの 4 行目に以下のように書き足します。


  1. struct LandmarkList: View {
  2. @State private var showFavoritesOnly = false
  3. var body: some View {




上記のリストの 6 行目に以下のように書き足します。



  1. struct LandmarkList: View {
  2. @State private var showFavoritesOnly = false
  3. var filteredLandmarks: [Landmark] {
  4. landmarks.filter { landmark in
  5. (!showFavoritesOnly || landmark.isFavorite)
  6. }
  7. }





    LandmarkList.swift


  1. import SwiftUI
  2. struct LandmarkList: View {
  3. @State private var showFavoritesOnly = false
  4. var filteredLandmarks: [Landmark] {
  5. landmarks.filter { landmark in
  6. (!showFavoritesOnly || landmark.isFavorite)
  7. }
  8. }
  9. var body: some View {
  10. NavigationView {
  11. List(filteredLandmarks) { landmark in
  12. NavigationLink(destination: LandmarkDetail(landmark: landmark)) {
  13. LandmarkRow(landmark: landmark)
  14. }
  15. }
  16. .navigationTitle("Landmarks")
  17. }
  18. }
  19. }
  20. struct LandmarkList_Previews: PreviewProvider {
  21. static var previews: some View {
  22. LandmarkList()
  23. }
  24. }


上記のリストの 4 行目を、以下のように書き換えます。



  1. struct LandmarkList: View {
  2. @State private var showFavoritesOnly = true





セクション 1セクション 2セクション 3
セクション 4セクション 5セクション 6
セクション 101セクション 102セクション 103
セクション 104セクション 105セクション 106





目次
Xcode の新機能

フレームワーク

  • SwiftUI

  • ビューの作成と結合

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5

    セクション 6


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    セクション 106

    ビルドリストとナビゲーション

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5

    セクション 6

    セクション 7

    セクション 8


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    セクション 106

    セクション 107

    セクション 108

    ユーザー入力の処理

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5

    セクション 6


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    セクション 106

    パスとシェイプの描画

    セクション 1

    セクション 2

    セクション 3

    セクション 4


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    ビューと移行のアニメーション

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    複雑なインターフェースの構成

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    UI コントロールを扱う

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    UIKit とのインターフェース

    セクション 1

    セクション 2

    セクション 3

    セクション 4


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    watchOS アプリの作成

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    macOS アプリの作成

    セクション 1

    セクション 2

    セクション 3

    セクション 4

    セクション 5

    セクション 6

    セクション 7


    セクション 101

    セクション 102

    セクション 103

    セクション 104

    セクション 105

    セクション 106

    セクション 107

    self