4

ビューを使用して、全体を再実装せずに基になるオブジェクトListにアクセスする (したがって変更する) 方法はありますか?UITableViewListUIViewRepresentable

List自分の内でa を初期化しようとしましたUIViewRepresentableが、必要なときに SwiftUI にビューを初期化させることができないようで、UIViewサブビューのない空の基本を取得するだけです。

この質問は、SwiftUI でのBottom-first scrollingの答えを見つけるのに役立ちます。


UITableViewまたは、 SwiftUIで再実装するライブラリまたはその他のプロジェクトも、この質問に答えます。

4

6 に答える 6

1

Rotoscope GitHub で呼び出されたライブラリを見つけました(私はこれの作成者ではありません)。

このライブラリは、同じ作者によってRefreshUI GitHub にも実装されています。

それがどのように機能するかは、あなたの上にサイズ0をオーバーレイするメソッドをRotoscope持っていることです(したがって、それは見えません)。ビューは一連のビューを掘り下げ、最終的に SwiftUI ビューをホストしている を見つけます。次に、ホスト ビューの最初のサブビューが返されます。このサブビューには のラッパーが含まれている必要があります。ラッパーのサブビューを取得することで、テーブル ビュー オブジェクトにアクセスできます。 taggingUIViewRepresentableListUIHostingViewUITableView

ライブラリはこのRefreshUIライブラリを使用して、SwiftUI への更新コントロールを実装しListます (GitHub リンクに移動し、ソースをチェックアウトして実装方法を確認できます)。

ただし、これは実際の方法というよりもハックのように見えるので、これを使用するかどうかはあなた次第です。Apple が内部のビュー レイアウトを変更し、このライブラリが壊れる可能性があるため、メジャー アップデート間で動作し続けるという保証はありません。

于 2020-02-29T05:27:49.703 に答える