問題タブ [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.

0 投票する
2 に答える
2730 参照

ios - SwiftUI - クリック可能なボタンを持つセル (フォーム内)

目標:

  1. ボタン付きの行/セルを作成する
  2. 行/セルをフォームに埋め込む

私がしたこと:

  1. ボタン付きのセルを作成しました。

横一列に4つのボタン、

  1. 次に、このセルをフォームに配置しました。

フォームに埋め込まれたボタンとテキスト

問題: タップすると、ボタンではなくセル全体が選択されるようになりました。

質問: ボタンをタップして選択するにはどうすればよいですか? フォーム上のすべてのボタン (セルではない) を公開する必要がありますか? 問題は、この場合、フォームに巨大なコードベースがあり、物事をきれいに整理したかったことです...

0 投票する
2 に答える
985 参照

swiftui - ピッカーを含むSwiftUIフォームでキーボードを非表示にする方法は?

a 、 a 、および aをSwiftUI Form含む a があります。PickerTextFieldText

上記のコードは、次の UI になります。

ピッカーとラベル付きのテキスト フィールドを表示する iOS アプリケーションのスクリーンショット

以下に示すように、ピッカーで 2 番目の項目を簡単に選択できます。

ピッカーで更新された選択を表示する iOS アプリケーションのスクリーンショット

以下では、 をタップしてテキスト入力を開始できることがわかりますTextField

テキスト フィールドにテキスト入力用のキーボードを表示する iOS アプリケーションのスクリーンショット

Picker値が更新されたときにキーボードを閉じるために、Bindingが追加されました。これは、次のコード ブロックで確認できます。

への呼び出しself.endEditing()は、次のメソッドで提供されます。

次のスクリーンショットは、キーボードの別のセグメントを選択するとPickerキーボードが消えることを示しています。

ピッカーの新しいセグメントを選択するときに閉じられたキーボードを表示する iOS アプリケーションのスクリーンショット

この時点まで、すべてが期待どおりに機能します。ただし、スクロールビューを含むをTextFieldドラッグするときにキーボードを閉じる方法がわからないため、の外側をタップするとキーボードを閉じたいと思います。Form

をタップしたときにキーボードを閉じるために、次の実装を追加しようとしましたForm

以下の 2 つのスクリーンショットは、TextFieldがファーストレスポンダーになり、キーボードを表示できることを示しています。の外側をタップすると、キーボードが正常に閉じられTextFieldます。

テキストフィールドをタップした後に表示されるキーボードを表示する iOS アプリケーションのスクリーンショット

ただし、ピッカーの別のセグメントを選択しようとしても、キーボードは消えません。実際、キーボードを閉じた後でも、別のセグメントを選択することはできません。フォームに添付されたタップジェスチャが選択を妨げているため、別のセグメントを選択できないと思います。

Picker次のスクリーンショットは、キーボードが表示され、タップ ジェスチャが実装されている間にで 2 番目の値を選択しようとした結果を示しています。

表示されたキーボードと以前に選択したピッカー セグメントを表示する iOS アプリケーションのスクリーンショット

Pickerの外側をタップしたときにキーボードを閉じることができるようにしながら、 のセグメントを選択できるようにするにはどうすればよいTextFieldですか?

0 投票する
1 に答える
362 参照

ios - グループ内のSwiftUI最初のオブジェクトが重なっています

私は SwiftUI を試してみることにしましたが、ここで少し金髪の瞬間を過ごしているようです。私がしたことは、Text オブジェクトをいくつか追加した Form を作成することだけでした。親ビューごとに 10 という制限があるため、オブジェクトをグループに追加しました。Groups同じ 内にnew を追加すると、 の最初のオブジェクトが上記のすべてのオブジェクトの後ろにも追加さFormれることに気付きました。奇妙な機能のように思えますが、私がここで太っているだけの可能性は十分にあります。GroupGroup

Spacerたとえば、 a 、空の文字列を追加するか、Groupを aに変更することで、重複を取り除くことができますSection。しかし、区切り記号のない 1 つの長いリストにしたい場合、どのような解決策がありますか?

フォーム内のグループ内のSwiftUIテキスト フォーム内のグループ内のSwiftUIテキスト フォーム内のグループ内のSwiftUIテキスト

0 投票する
1 に答える
389 参照

ios - フォームでアニメーションを制御することはできませんか?

フォーム ビュー内で発生するアニメーションを制御できるようにするためのものではありませんか? ここに、問題を示すプレイグラウンドと、何が起こるかの gif があります。ご覧のとおり、2 番目のアニメーション ビューでのトランジションは完全に無視されます。再生時間も無視されるため、手動でビデオの速度を落とす必要がありました。

スケーリングのトランジションは本当に必要ありません。これは、何を入れてもアニメーションが同じであることを示すためです。それは期待されていますか、それともバグですか?それとも、まったく間違ったことをしているだけですか?

VStack が .move と .opacity の組み合わせを取得しているように見えるときに、VStack のアニメーションが単純な Text フィールドとは異なる方法で処理される理由も明確ではありません。

アニメーションデモ