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