問題タブ [uiviewcontrollerrepresentable]

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 に答える
18 参照

swiftui - SwiftUI FBSDKShareKit と ShareDialog を使用して Facebook に URL を共有する方法は?

thisthisなどの投稿で解決策を探してみましたが、人々はまったく同じ質問をしました: How to share a url to Facebook using SwiftUI ?

SwiftUI を使用してファイルをエクスポートする方法を誰かが尋ねたこの投稿も試しましたが、Whatsapp などのアプリに URL を共有するのに問題がないため、私の問題は特に Facebook にあります。しかし、私は答えを見つけられませんでした...

UIKit

Facebook の Developer documentationを読んで、UIKit を使用して投稿を共有する方法を見つけました。

トピックを理解していることを確認するために、非常に単純なサンプル プロジェクトを作成しました。UIKit のサンプル プロジェクトは次のとおりです。

幸いなことに、これはすぐに機能しました。このプロジェクトを機能させることで、AppBundleID を Facebook にリンクするのを忘れたり、info.plist 内に FacebookAppID やその他の必要なファイルを追加するのを忘れたりしていないことを確認しました。

SwiftUI

次に、SwiftUI で同じプロジェクトを複製して、機能するかどうかを確認しました。ViewControllerRepresentable を使用して、UIActivityViewController を SwiftUI に含めることができました。

UIActivityViewController を使用する理由は、URL を共有する場所 (Whatsapp、Twitter、Facebook など) をユーザーに選択してもらいたいからです。

コードは次のとおりです。

コンテンツビュー

UIViewControllerRepresentable

controllerこのコードは、 ShareDialog を初期化するときに使用される変数であると私が想定しているため、機能しません。( 「XCodeはタイプ 'ActivityViewController'の値を予期される引数タイプ 'UIViewController'に変換できないため、selfも機能しませんか?」 )

質問

Facebook 開発者のドキュメントによると、リンクを共有するには次のコードを記述する必要があります。

ただし、SwiftUI は ViewControllers では機能しません。URL を Facebook に正常に共有するためにfromViewController、パラメーターとして使用する ViewController を作成するにはどうすればよいですか?ShareDialog

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

ios - UIViewControllerRepresentable に関連する SwifUI レイアウトのバグを回避する

UIViewControllerRepresentableがSwiftUIビュー内で使用されるたびにバグが発生しました。フィードバック アシスタントにレポートを提出しましたが、アプリをリリースするには問題を回避する必要があります。

バグが発生するために必要でGeometryReaderはありませんが、何が起こっているのかを明らかにする可能性があります。

再現する手順:

縦向きの iPhone 8 Plus シミュレーターのように、ノッチのない iPhone でコードを実行します。シミュレーターを縦向きから横向きに回転します。シミュレーターを横向きから縦向きに回転します。

テキストは次のとおりです。

geo.size.height: 736.0、geo.safeAreaInsets.top: 0.0

しかし読むべきです:

geo.size.height: 716.0、geo.safeAreaInsets.top: 20.0

また、テキスト位置が 20 ポイント上に移動します。

レイアウトを手動で修正する興味深い方法は、通知センターをプルダウンし始めることです。レイアウトと安全領域の高さが自動的に修正されます。

レイアウト自体を修正する方法についてのアイデアはありますか?