問題タブ [swiftui-scrollview]
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カレンダーは現在の月を取得します
カレンダーがスクロールされている現在の月を取得しようとしています。私の目標は、現在の月のヘッダーを表示することです。次に、ビューを新しい月までスクロールすると、ヘッダーが対応する月に更新されます。LazyVStack を使用してみましたが、onAppear メソッドで現在の月を設定しましたが、lazyVStack の使用は一貫性がなく、常に数か月ずれています。以下のコードは、iPad カレンダーの月表示用に最適化されています。
ios - SwiftUI: LazyVStack または LazyHStack を ScrollView に配置すると、スタッターが発生します (Apple のバグ??)
XCode バージョン 12.4 (12D4e)
ScrollView 内に Lazy スタックを実装するたびに、これに遭遇しました。
LazyHStack
aを横に、ScrollView
または aLazyVStack
を縦に追加するScrollView
- スクロール ビューのコンテンツ サイズがその境界を超えるように、十分なコンテンツを追加します。
シナリオ 1 - 境界を超えてスクロールビューをプルする (リフレッシュするためにプルしているように)
期待される動作: スクロール ビューが指の下にある場合は、期待どおりに動作します。
観察された行動: 吃音とジャンプ
シナリオ 2 - バウンドするように端まですばやくスクロールする
期待される動作: スムーズに跳ねる
観察された動作: 端に到達すると停止して揺れますが、跳ねません。
私の理論 私の理論では、Lazy スタックを使用しているため、ビューが画面から消えると、ビュー階層から削除され、スタッターが発生します。
他の誰かがこれに遭遇したのだろうか?これはSwiftUIのバグですか? 私はこれを数か月間、さまざまなプロジェクトで確実に再現してきましたが、できればLazyスタックを使用しないことに頼ることになりました。
サンプルコード
注: スタッターはスクロール ビューの上部でのみ発生します
** 2021 年 7 月 10 日更新**
これは、iOS 15、バージョン 13.0 ベータ版 (13A5155e) でも発生しています。
下のビデオでは、スクロールバーの動作と、一番下に到達したときのカクつきに注目してください。
** 2021 年 7 月 19 日更新**
ビュー内のすべてを切り取って、1 つずつ元に戻しました — 単純な要素のVStack/HStack/ZStack
周りに aを配置するとすぐに、LazyVStack が途切れ始めます。Text
要素に追加fixedSize(horizontal: false, vertical: true)
すると、Text
吃音が停止するようです。可変高さを追加するとすぐに、UIViewRepresentable
再びスタッターし始めます。
LazyStack では、すべての子が何らかの固定サイズであるか、純粋な SwiftUI ビューである必要があるようです。
掘り続けます。解決しなければなりません...
swiftui - SwiftUI: 水平方向にアイコンのスクロール ビューを作成する方法
この画像のように見えるように、水平ビューのソーシャルメディアアイコンのスクロールビューをスケーリングおよびサイズ変更したかった
-スクロール ビューとリスト ビューのどちらを使用する必要がありますか? 水平方向にも
このコードを試してみましたが、うまくいきませんでした。見逃した可能性のある解決策はありますか?