SwiftUI Pickerオプションの下にセクションフッターテキストを追加するにはどうすればよいですか?

gohnjanotis

私はSwiftUIでアプリを作成しており、Pickerを使用してユーザーが選択できるオプションのリストを表示しています。

誰かがピッカーをタップしてオプションを表示したときに、リスト内の選択肢を説明するフッターテキストを追加したいと思います。

これは、iOS設定アプリから取得した、達成したいことのスクリーンショットの例です。 AirDrop設定

SwiftUIでこれをどのように達成できますか?

メイン画面にピッカーを含むセクションのフッターを定義し(「設定の簡単な説明です。」)、正常に機能しますが、同様のコードでは、ピッカーオプションを表示するフッターが画面に追加されません。

これが私のサンプルコードです:

import SwiftUI

class ViewModel: ObservableObject {

    enum Option: String, Identifiable, CaseIterable, CustomStringConvertible {
        case optionOne
        case optionTwo
        case optionThree

        var id: Option {
            self
        }

        var description: String {
            rawValue.prefix(1).uppercased() + rawValue.dropFirst()
        }
    }

    @Published var selectedOption: Option = .optionOne {
        didSet {
            print("new option selected: \(selectedOption.description)")
        }
    }
}

struct ContentView: View {

    @ObservedObject var viewModel = ViewModel()

    var body: some View {

        NavigationView {
            Form {
                Section(footer: Text("Here is a short description of the setting.")) {
                    Picker(selection: $viewModel.selectedOption,
                           label: Text("Choice")) {
                            Section(footer: Text("This is some additional text to help the user understand the options.")) {
                                ForEach(ViewModel.Option.allCases) { type in
                                    Text(type.description)
                                }
                            }
                    }
                }

            }.navigationBarTitle(Text("Main Screen"))
        }
    }
}

また、このリストが読み込まれると、奇妙なジャンプが表示されます。どうすればそれを回避できますか?

E.Coms

別のデュアルフッターは必要ないかもしれません。ヒントタイトルだけかもしれません。

struct ContentView: View {

    @ObservedObject var viewModel = ViewModel()

    var body: some View {

        NavigationView {
            Form {
                Section(footer: Text("Here is a short description of the setting.")) {
                    Picker(selection: $viewModel.selectedOption,
                           label: Text("Choice")) {

                            ForEach(ViewModel.Option.allCases) { type in
                                Text(type.description)
                            }.navigationBarTitle("hint title here", displayMode: .inline)

                    }
                }.navigationBarTitle("Main Screen", displayMode: .inline)

            }.navigationBarTitle(Text("Main Screen"))
        }
    }
}

ピッカーがなくても、独自のオプションリストを作成できます。

struct ContentView: View {

    @ObservedObject var viewModel = ViewModel()

    var body: some View {

        NavigationView {
            Form {
                Section(footer: Text("Here is a short description of the setting.")) {
                    NavigationLink(destination: SelectionItemView(selection: $viewModel.selectedOption)) {
                        Text("Choice")
                    }


                }.navigationBarTitle("Main Screen", displayMode: .inline)

            }.navigationBarTitle(Text("Main Screen"))
        }
    }
}


struct SelectionItemView: View {

    @Binding var selection: ViewModel.Option
    var body: some View{
        Form{
            Section(footer: Text("Here is a detailed description of the setting.")) {
                ForEach(0 ..< ViewModel.Option.allCases.count, id: \.self) { index in

                    HStack{
                        Button(action: {
                            self.selection  = ViewModel.Option.allCases[index]
                        }){Text(ViewModel.Option.allCases[index].description)}
                        Spacer()
                        if ( self.selection  ==  ViewModel.Option.allCases[index] ){
                            Image(systemName: "checkmark")
                        }
                    }

                }
            }}


    }
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

SwiftUI Pickerオプションの下にセクションフッターテキストを追加するにはどうすればよいですか?

分類Dev

SwiftUIで、表示されたときにボタンオフセットをアニメーション化するにはどうすればよいですか?

分類Dev

SwiftUI Pickerでスロットマシンのメタファーを作成するにはどうすればよいですか?

分類Dev

SwiftUIのボタンにナビゲーションボタンのリンクを追加するにはどうすればよいですか?

分類Dev

SwiftUIフォームのセクションの上のスペースを削除するにはどうすればよいですか?

分類Dev

SwiftUIフォームのセクションの上のスペースを削除するにはどうすればよいですか?

分類Dev

swiftUIでアイテムを選択したときにピッカーにアクションを追加するにはどうすればよいですか?

分類Dev

swiftUIでアイテムを選択したときにピッカーにアクションを追加するにはどうすればよいですか?

分類Dev

SwiftUIのセクションから背景色を削除するにはどうすればよいですか?

分類Dev

SwiftUI:オプション「明るい」、「暗い」、「システム」を使用して、ユーザーがアプリの外観をリアルタイムで設定できるようにするにはどうすればよいですか?

分類Dev

ナビゲーションバックトラッキングなしでSwiftUIビューを起動するにはどうすればよいですか?

分類Dev

SwiftUIがカスタムフォントとして提供できるフォントの他のオプションを確認するにはどうすればよいですか?

分類Dev

シンプルなSwiftUIアプリでナビゲーションリンクを効果的に使用するにはどうすればよいですか?

分類Dev

SwiftUIのCAEmitterLayerでアニメーションを作成するにはどうすればよいですか?

分類Dev

SwiftUIのCAEmitterLayerでアニメーションを作成するにはどうすればよいですか?

分類Dev

SwiftUIで、ビデオオンループをフルスクリーンの背景画像として追加するにはどうすればよいですか?

分類Dev

SwiftUIでボタンのアクションとしてクロージャを定義するにはどうすればよいですか?

分類Dev

SwiftUIでWKWebViewを使用するときにリンクナビゲーションをインターセプトするにはどうすればよいですか?

分類Dev

SwiftUI ForEachコンテンツで複数のボタンアクションを別々に保つにはどうすればよいですか?

分類Dev

SwiftUI:条件付きビュー間にトランジションを追加するにはどうすればよいですか?

分類Dev

SwiftUIを使用して、パイのプログレスバーをアニメーション化するにはどうすればよいですか

分類Dev

SwiftUIのiPadナビゲーションビューの側面に画像を追加するにはどうすればよいですか?

分類Dev

SwiftUIでアニメーションを一時停止するにはどうすればよいですか?

分類Dev

SwiftUIのrotationAngleのCGAffineTransformにアニメーションを追加するにはどうすればよいですか?

分類Dev

watchOS 7のSwiftUIでモーダルシートビューの[キャンセル]ボタンのテキストを変更するにはどうすればよいですか?

分類Dev

swiftUI toggle()がトグルされたときにアクションをトリガーするにはどうすればよいですか?

分類Dev

swiftUI toggle()がトグルされたときにアクションをトリガーするにはどうすればよいですか?

分類Dev

TextEditorのテキストの変更に基づいてSwiftUIビューをアニメーション化するにはどうすればよいですか?

分類Dev

不透明度を変更し、タッチするとボタンアクションをトリガーするSwiftUIボタンを作成するにはどうすればよいですか?

Related 関連記事

  1. 1

    SwiftUI Pickerオプションの下にセクションフッターテキストを追加するにはどうすればよいですか?

  2. 2

    SwiftUIで、表示されたときにボタンオフセットをアニメーション化するにはどうすればよいですか?

  3. 3

    SwiftUI Pickerでスロットマシンのメタファーを作成するにはどうすればよいですか?

  4. 4

    SwiftUIのボタンにナビゲーションボタンのリンクを追加するにはどうすればよいですか?

  5. 5

    SwiftUIフォームのセクションの上のスペースを削除するにはどうすればよいですか?

  6. 6

    SwiftUIフォームのセクションの上のスペースを削除するにはどうすればよいですか?

  7. 7

    swiftUIでアイテムを選択したときにピッカーにアクションを追加するにはどうすればよいですか?

  8. 8

    swiftUIでアイテムを選択したときにピッカーにアクションを追加するにはどうすればよいですか?

  9. 9

    SwiftUIのセクションから背景色を削除するにはどうすればよいですか?

  10. 10

    SwiftUI:オプション「明るい」、「暗い」、「システム」を使用して、ユーザーがアプリの外観をリアルタイムで設定できるようにするにはどうすればよいですか?

  11. 11

    ナビゲーションバックトラッキングなしでSwiftUIビューを起動するにはどうすればよいですか?

  12. 12

    SwiftUIがカスタムフォントとして提供できるフォントの他のオプションを確認するにはどうすればよいですか?

  13. 13

    シンプルなSwiftUIアプリでナビゲーションリンクを効果的に使用するにはどうすればよいですか?

  14. 14

    SwiftUIのCAEmitterLayerでアニメーションを作成するにはどうすればよいですか?

  15. 15

    SwiftUIのCAEmitterLayerでアニメーションを作成するにはどうすればよいですか?

  16. 16

    SwiftUIで、ビデオオンループをフルスクリーンの背景画像として追加するにはどうすればよいですか?

  17. 17

    SwiftUIでボタンのアクションとしてクロージャを定義するにはどうすればよいですか?

  18. 18

    SwiftUIでWKWebViewを使用するときにリンクナビゲーションをインターセプトするにはどうすればよいですか?

  19. 19

    SwiftUI ForEachコンテンツで複数のボタンアクションを別々に保つにはどうすればよいですか?

  20. 20

    SwiftUI:条件付きビュー間にトランジションを追加するにはどうすればよいですか?

  21. 21

    SwiftUIを使用して、パイのプログレスバーをアニメーション化するにはどうすればよいですか

  22. 22

    SwiftUIのiPadナビゲーションビューの側面に画像を追加するにはどうすればよいですか?

  23. 23

    SwiftUIでアニメーションを一時停止するにはどうすればよいですか?

  24. 24

    SwiftUIのrotationAngleのCGAffineTransformにアニメーションを追加するにはどうすればよいですか?

  25. 25

    watchOS 7のSwiftUIでモーダルシートビューの[キャンセル]ボタンのテキストを変更するにはどうすればよいですか?

  26. 26

    swiftUI toggle()がトグルされたときにアクションをトリガーするにはどうすればよいですか?

  27. 27

    swiftUI toggle()がトグルされたときにアクションをトリガーするにはどうすればよいですか?

  28. 28

    TextEditorのテキストの変更に基づいてSwiftUIビューをアニメーション化するにはどうすればよいですか?

  29. 29

    不透明度を変更し、タッチするとボタンアクションをトリガーするSwiftUIボタンを作成するにはどうすればよいですか?

ホットタグ

アーカイブ