2011-01-21 6 views
6

基本的にこれらは二つの質問です:iPadのポップオーバービューの矢印を削除する方法どのようにiPadのポップオーバーの矢印を削除すると、そのフレームの境界線

  1. ポップオーバーの黒い枠線を削除する方法はありますか?

ことができない場合は、(光透過ボーダーかもしれません)矢印と境界せずに画面の上部にあるのUIView(ポップオーバー)をしてください表示するには、iPadの方法を提案することができますか?どうもありがとう。

ModalViewは適切なオプションではないと思います。サイズを変更することはできず、外部のモーダルビューをクリックしても解除することはできません。

+0

ありがとうございます。それらを削除するストレートな方法はないと思われ、ポップオーバーをカスタマイズする必要があります。私が考えているのは、フルスクリーンの透明なUIViewを実装し、さらに小さなサイズのViewを上に追加することです。表示されると、ポップオーバーのように動作します。 – Aragon

答えて

2

クロムをポップオーバーの周りで除去することはできません。あなたの最善の策は、カスタムコードを使用して、ポップオーバーのアイデアを再実装することです。

7

AFIK "no arrow"を指定する方法、またはポップアップの境界線を設定する組み込みの方法はありません。

これはハックですが、基本的には機能します。ポップアップコントローラによって管理されている、あなたのビューコントローラのコンテキストでは、viewWillAppear中に:,ポップアップウィンドウを取得し、矢印との境界線を描画するものである第一層、削除:

- (void) viewWillAppear: (BOOL) animated 
{ 
    [super viewWillAppear: animated]; 

    UIView* v = self.view.superview; 
    NSLog(@"%@", NSStringFromClass([v class])); // this should print UIView 

    v = v.superview; 
    NSLog(@"%@", NSStringFromClass([v class])); // this should print UIPopoverView 

    [[v.layer.sublayers objectAtIndex:0] removeFromSuperlayer]; 
}  

を私はあなたが試すことができたとしバックグラウンド/境界をレンダリングした独自のレイヤーを追加して、あなたが望むようにします。

+1

偉大なハック、ありがとう。いくつかのノート: '#import 'が必要です。また、回転前にポップオーバーコントローラを閉じることを忘れないでください。さもなければEXC_BAD_ACCESSが得られます。 – martip

+0

レイヤーを削除することは非常に悪い考えであり、appStoreに送信する際には、おそらくappleによって拒否されます。ここでこの解決策を見てください:https://github.com/werner77/Wepopover – oberthelot

7

iPadのポップオーバービューの矢印を削除するにはどうすればよいですか?

-presentPopoverFromBarButtonItem:permittedArrowDirections:を呼び出すときは、定数のいずれかではなく、2番目のパラメータとして0を渡します。これは文書化されていませんが、Appleはこの設定を使用するときにApp Storeでアプリを許可しています。

+0

それは仕事をします。UIImagePickerをコンテンツビューとして使用すると、ポップアップのサイズが変更され、幅が変更できなくなります。 –

1
  • 矢印または枠線を削除することはできません。 TomSwiftが示唆しているように何らかのハックを行うと、のリスクが拒否され、のappStoreのアプリを送信するとリスクが発生します。

  • Kevinが提案するように、コントローラのような独自のカスタムポップオーバーを実装することもできます。 ここにあるオープンソースプロジェクトは、https://github.com/werner77/WEPopoverです。バックグラウンドと矢印はそれから削除することも、透明に設定することもできます。

関連する問題