0

PopOverController がビューの一番上にあるかどうかを計算/検出する方法はありますか? その場合、permitedArrowDirections:UIPopoverArrowDirectionDown と allowedArrowDirections:UIPopoverArrowDirectionUp を表示する方法は、ビューの下部または上部にあるかどうか、またはサイズ変更せずに popOverControl を表示するのに十分なスペースがあるかどうかに応じて?代替ビューを下または上にスクロールすることを考えていました十分なスペースがない場合は、permitedArrowDirections:UIPopoverArrowDirectionDown と allowedArrowDirections:UIPopoverArrowDirectionUp を利用したいと思います。助言がありますか?

4

2 に答える 2

0

ポップオーバー コントローラーがビューを配置する場所を計算する必要はありません。ポップオーバー コントローラーは、矢印指す位置と、ポップオーバーが追加されるビューを指定できるように設計されています。次に、ポップオーバー コントローラーは、ポップオーバー ビューを表示する余地がある場所を計算します。

ただし、1 つ以上のUIPopoverArrowDirection. たとえば、ビュー A の左側に小さなサブビュー (ビュー B) が配置された大きなビュー (ビュー A) があるとします。ビュー B の右側にあるボタン ビューのポップオーバーを表示する場合は、それを提示するとき、次のようにビュー A 内のボタンのフレームの右側にのみポップオーバー ビューを表示するようにポップオーバー コントローラーに指示できます。

[popoverController presentPopoverFromRect: buttonView.frame
                                   inView: viewA
                 permittedArrowDirections: UIPopoverArrowDirectionLeft
                                 animated: YES];

編集

テーブルビューを含むビューの座標空間でテキストフィールドの枠を取得できますか?

CGRect frame = [tableView.superview convertRect: textField.frame fromView: textField.superview];
[popoverController presentPopoverFromRect: frame
                                   inView: tableView.superview
                 permittedArrowDirections: UIPopoverArrowDirectionLeft
                                 animated: YES];

tableView のスーパー ビューが必要に応じて十分な大きさであると仮定すると、これはポップオーバーの表示に対応するはずです。

于 2013-04-11T16:24:01.990 に答える