新しい uipopoverpresentationcontroller を使用してポップオーバーを再配置する効果的な方法を探しています。ポップオーバーの表示は成功しましたが、今度はそれを閉じて再度表示することなく移動したいと考えています。関数の使用に問題があります:
(void)popoverPresentationController:(UIPopoverPresentationController *)popoverPresentationController
willRepositionPopoverToRect:(inout CGRect *)rect
inView:(inout UIView **)view
まだゲームの初期段階であることは承知していますが、これを効率的に行う方法の例をお持ちの方がいらっしゃいましたら、ぜひ共有していただければ幸いです。よろしくお願いします。
ベストアンサー1
残念ながら、このハッキーな回避策が私が見つけた唯一の解決策です:
[vc.popoverPresentationController setSourceRect:newSourceRect];
[vc setPreferredContentSize:CGRectInset(vc.view.frame, -0.01, 0.0).size];
これにより、表示されているビューのコンテンツ サイズが一時的に変更され、ポップオーバーと矢印の位置が変更されます。一時的なサイズの変更は表示されません。
これは Apple が修正する必要がある問題のようです。sourceView
またはのsourceRect
プロパティを変更しても、UIPopoverPresentationController
すでにポップオーバーが表示されている場合は何も起こりません (この回避策なし)。
あなたにもこれが効くことを願っています!