問題タブ [lazyvgrid]

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 投票する
0 に答える
854 参照

arrays - ForEach で使用するための SwiftUI のカスタム ビューの配列

SettingsPointOneView()図の各ポイントのように、4 つの同様のビューがあります。この場合、SliderFirstPointX()2つのビューが保存されます。SliderFirstPointY()それら (SliderFirstPointX など) は、スライダーを使用して、カスタム フィギュアの特定のポイントの軸 (x、y) の値を制御および変更します。

外観:</p>

ここに画像の説明を入力

SliderFirstPointX() および SliderFirstPointY()

SettingsPointOneView()

スクリーンショットのように、それらを LazyVGrid に配置したかったのです。そこで、定数 var を作成し、次のように初期化しようとしました。

その後、いくつかのエラー メッセージが表示されました。

ForEach の前: • タイプとしてのプロトコル「Any」は、「AccessibilityRotorContent」に準拠できません。

LazyVGrid の前:

• 一般的な構造体 'LazyVGrid' では、'View' に準拠する 'some AccessibilityRotorContent' が必要です。

• 初期化子 'init(columns:alignment:spacing:pinnedViews:content:)' は、'view' に準拠する 'some AccessibilityRotorContent' を必要とします。

• 構造体「ViewBuilder」では、「一部の AccessibilityRotorContent」が「View」に準拠する必要があります

解決策が見つからなかったため、この実装を使用する必要がありましたが、満足していません。

このソリューションはかなりうまく機能しますが、この機能を実装する方法は間違っていると思います。

ForEach のビューの配列でアプローチを使用する方法はありますか?

正直なところ、私はプログラミングを始めて 3 か月になるので、Swift 開発者として何を学ぶべきかアドバイスをいただければ幸いです。

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

arrays - LazyVGrid を使用している場合、DetailView は配列内の最初の項目のみを呼び出します

アイテムを追加できるリストがあり、それらをクリックすると正しい詳細ビューが開きました。最近リストを LazyVGrid に交換しましたが、グリッド項目をクリックすると、詳細ビ​​ューは配列の最初の項目のみを呼び出します。

これはリスト ビューです。

アイテムの追加と詳細ビュー:

そして、これが各アイテムを追加する方法です:

LazyVGrid が最初のアイテムのみを呼び出している理由がわかりません。

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

swift - LazyVStack 内で AsyncImage とともに VStack を使用すると、スクロール時に画像がリロードされる

SwiftUI で新しい AsyncImage を使用して、タイトル付きの画像の長いリストを表示しようとしています。AsyncImage の周りに VStack を配置して画像をスクロールすると、上下にスクロールするたびに画像がリロードされることに気付きました。VStack がない場合、リロードが表示されず、画像がキャッシュされたままのように見えます。

各画像の下にテキストを追加できるように、VStack がスクロール時に画像をリロードしないようにする方法はありますか?

これが実際の例です。VStack の有無にかかわらずスクロールしてみてください。