問題タブ [swiftui-form]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swiftui - ピッカーを含むSwiftUIフォームでキーボードを非表示にする方法は?
a 、 a 、および aをSwiftUI
Form
含む a があります。Picker
TextField
Text
上記のコードは、次の UI になります。
以下に示すように、ピッカーで 2 番目の項目を簡単に選択できます。
以下では、 をタップしてテキスト入力を開始できることがわかりますTextField
。
Picker
値が更新されたときにキーボードを閉じるために、Binding
が追加されました。これは、次のコード ブロックで確認できます。
への呼び出しself.endEditing()
は、次のメソッドで提供されます。
次のスクリーンショットは、キーボードの別のセグメントを選択するとPicker
キーボードが消えることを示しています。
この時点まで、すべてが期待どおりに機能します。ただし、スクロールビューを含むをTextField
ドラッグするときにキーボードを閉じる方法がわからないため、の外側をタップするとキーボードを閉じたいと思います。Form
をタップしたときにキーボードを閉じるために、次の実装を追加しようとしましたForm
。
以下の 2 つのスクリーンショットは、TextField
がファーストレスポンダーになり、キーボードを表示できることを示しています。の外側をタップすると、キーボードが正常に閉じられTextField
ます。
ただし、ピッカーの別のセグメントを選択しようとしても、キーボードは消えません。実際、キーボードを閉じた後でも、別のセグメントを選択することはできません。フォームに添付されたタップジェスチャが選択を妨げているため、別のセグメントを選択できないと思います。
Picker
次のスクリーンショットは、キーボードが表示され、タップ ジェスチャが実装されている間にで 2 番目の値を選択しようとした結果を示しています。
Picker
の外側をタップしたときにキーボードを閉じることができるようにしながら、 のセグメントを選択できるようにするにはどうすればよいTextField
ですか?
ios - グループ内のSwiftUI最初のオブジェクトが重なっています
私は SwiftUI を試してみることにしましたが、ここで少し金髪の瞬間を過ごしているようです。私がしたことは、Text オブジェクトをいくつか追加した Form を作成することだけでした。親ビューごとに 10 という制限があるため、オブジェクトをグループに追加しました。Groups
同じ 内にnew を追加すると、 の最初のオブジェクトが上記のすべてのオブジェクトの後ろにも追加さForm
れることに気付きました。奇妙な機能のように思えますが、私がここで太っているだけの可能性は十分にあります。Group
Group
Spacer
たとえば、 a 、空の文字列を追加するか、Group
を aに変更することで、重複を取り除くことができますSection
。しかし、区切り記号のない 1 つの長いリストにしたい場合、どのような解決策がありますか?
ios - フォームでアニメーションを制御することはできませんか?
フォーム ビュー内で発生するアニメーションを制御できるようにするためのものではありませんか? ここに、問題を示すプレイグラウンドと、何が起こるかの gif があります。ご覧のとおり、2 番目のアニメーション ビューでのトランジションは完全に無視されます。再生時間も無視されるため、手動でビデオの速度を落とす必要がありました。
スケーリングのトランジションは本当に必要ありません。これは、何を入れてもアニメーションが同じであることを示すためです。それは期待されていますか、それともバグですか?それとも、まったく間違ったことをしているだけですか?
VStack が .move と .opacity の組み合わせを取得しているように見えるときに、VStack のアニメーションが単純な Text フィールドとは異なる方法で処理される理由も明確ではありません。