0

UIview内にテーブルビューが埋め込まれたiPadアプリを構築しています(奇妙です、私は知っています)。UITableview には、PLIST を介してロードされたデータがあります。ユーザーが行を「選択」できるようにしたいのですが、そのフィールドを編集できるテキストフィールドを含む「ポップオーバー」(uiview) が表示されます。

ただし、コードを見ると、関数を起動する方法は 2 つしかないことがわかります。

  • presentPopoverFromBarButtonItem
  • presentPopoverFromRect

これは本当ですか、丸い四角形またはバーボタンアイテムからのみその機能を起動できますか? できる気がしますが、検索しても答えが見つかりません。

4

2 に答える 2

0

はい、バー ボタン アイテムまたはビュー内の四角形からのみポップオーバーを表示できます。

公式ドキュメントから:

Presenting and Dismissing the Popover
– presentPopoverFromRect:inView:permittedArrowDirections:animated:
– presentPopoverFromBarButtonItem:permittedArrowDirections:animated:
– dismissPopoverAnimated:
于 2012-09-20T23:07:07.800 に答える
0

これらは、UIPopoverController のサブクラスを提示する唯一の 2 つの方法です。「presentPopoverFromRect」が機能しない理由について、あなたの質問では明確ではありません。

「presentPopoverFromBarButtonItem」は少し制限があることは理解していますが、「presentPopoverFromRect」を使用すると、好きなことを実行できます。これにより、ビューに対してポップオーバーを配置できます。「四角形」は、ビューのフレームに対してポップオーバーをオフセットする方法を提供します。

試す:

CGRect popoverRectFromCell = CGRectMake(tappedCell.frame.size.width / 2, tappedCell.frame.size.height / 2, 1, 1);

[cellPopover presentPopoverFromRect:popoverRectFromCell 
                             inView:tappedCell 
           permittedArrowDirections:UIPopoverArrowDirectionUp 
                           animated:YES];

もちろん、「popoverRectFromCell」を微調整して、目的の結果を得ることができます。

ただし、これが実際に UIPopoverController のユースケースであるかどうかはわかりません。カスタムビューを作成して、ユーザーがセルをタップしたときにテキスト入力に使用する方が簡単かもしれません.

于 2012-09-20T23:07:24.487 に答える