質問

ことは可能でにpopoverなく矢を指すか?

役に立ちましたか?

解決

はい、それだけで行うことも可能です。

 [self.popoverController presentPopoverFromBarButtonItem:anItem   
                                permittedArrowDirections:0
                                                animated:YES];

ゼロには方向を表していない。

他のヒント

iPhoneと迅速2.0の場合

これを試してみてください

コードを開始するためのポップオーバー

initiatePopover(){
    let popoverContent = self.storyboard?.instantiateViewControllerWithIdentifier("XYZController") as! XYZController
    let nav = UINavigationController(rootViewController: popoverContent)
    nav.modalPresentationStyle = UIModalPresentationStyle.Popover
    let popover = nav.popoverPresentationController
    popoverContent.preferredContentSize = CGSizeMake(250 ,200)
    popover!.delegate = self
    popover!.sourceView = self.view
    popover!.sourceRect = CGRectMake(200,200,0,0)
    popover!.permittedArrowDirections = UIPopoverArrowDirection(rawValue: 0)
    self.presentViewController(nav, animated: true, completion: nil)
}

そして、あなたのViewControllerにこれを追加します。

func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle {
    return UIModalPresentationStyle.None
}

0にpermittedArrowDirectionsを設定します。

permittedArrowDirections:0

コード -

[self.popoverController presentPopoverFromBarButtonItem:anItem   
                                permittedArrowDirections:0
                                                animated:YES];

ゼロ "NoDirection" を伝えます。

Swift3, このコードを作っ

popover.permittedArrowDirections = .init(rawValue: 0)

のための Swift 2.0iOS9 のソリューションがあります:

popoverViewController?.permittedArrowDirections = UIPopoverArrowDirection()

はこれを試してみてください、それは私のために動作します。

[self.popoverViewController presentPopoverFromRect:rect inView:self.view  permittedArrowDirections:0 animated:YES];

Swift4:

popover.permittedArrowDirections = []              

これは私のために罰金を働きます。

[popoverController presentPopoverFromRect:CGRectMake(0, 0, 20, 20)
                                    inView:self.view 
                  permittedArrowDirections:NULL 
                                  animated:YES];

コーディングお楽しみいただけます。

いやが、何のUIPopoverArrowDirectionNoneオプションはありません、そしてあなたがその存在に使用しようとするとUIPopoverArrowDirectionUnknownは私が考える例外をスローします。

代わりにポップオーバーコントローラの、あなたはpresentModalViewController:animated:を呼び出し、あなたがUIModalPresentationFormSheetまたは多分UIModalPresentationPageSheetのモーダルプレゼンテーションスタイルを持っているために提示されているコントローラを設定することができます。それらはpopoversであるよりも、より伝統的なポップアップ画面です。

迅速な開発者のための私の場合は、

popoverController.sourceView = self.view
popoverController.sourceRect = self.view.bounds
popoverController.backgroundColor = UIColor.brownColor()

popoverController.permittedArrowDirections = UIPopoverArrowDirection.init(rawValue: 0)
popoverController.sourceRect = CGRectMake(width/4, hieght/4, width/2, hieght/2);

SWIFT 3では、あなたは、このためにUIPopoverArrowDirection拡張を構築することができます

extension UIPopoverArrowDirection {
    public static var noArrow: UIPopoverArrowDirection {
        return UIPopoverArrowDirection(rawValue: 0)
    }
}

、あなたが行うことができます:

popoverPresentationController!.permittedArrowDirections = .noArrow

でスウィフト、あなたは、単に行うことができます:

popoverPresentationController.permittedArrowDirections = []

別の構成では、あなたが使用している可能性がありますのでます:

popoverPresentationController.permittedArrowDirections = [.up, .down]

この方法を試してください。
[popOverController presentPopoverFromRect:CGRectMake(0, 0, 30, 40) inView:popOverContentView permittedArrowDirections:0 animated:NO];
あなたは矢印を表示したくない場合は、

DoがPopoversを使用していません。モーダルとしてあなたのビューコントローラを提示し、代わりにUIModalPresentationFormSheetを使用しています。

例:

UIStoryboard *sb = [UIStoryboard storyboardWithName:@"MyStoryBoard" bundle:nil];
UIViewController* viewController = [sb instantiateViewControllerWithIdentifier:@"myViewController"];
viewController.modalPresentationStyle = UIModalPresentationFormSheet;
[presenterViewController presentViewController: viewController animated:YES completion:^{

}];

私は、タッチ座標に応じたメニューを表示するためにポップオーバーを使用しています。 この場合、ポップオーバーはself.viewの最大高さを使用する

CGRect popeverFrame = CGRectMake(touchPoint.x, touchPoint.y, 0, 0);
[self.popover presentPopoverFromRect:popeverFrame
                              inView:self.view
            permittedArrowDirections:UIPopoverArrowDirectionAny
                            animated:YES];

しかし、私は0方向を使用する場合。ポップオーバー矩形が最大にそれに高さを設定しないとのみ適切なプロパティで設定することができる。

CGRect popeverFrame = CGRectMake(touchPoint.x, touchPoint.y, 0, 0);
[self.popover presentPopoverFromRect:popeverFrame
                              inView:self.view
            permittedArrowDirections:UIPopoverArrowDirectionAny
                            animated:YES];

・ホープ、この意志のヘルプ:UIPopOverControllerサイズとヘルプ

方向なしの上にポップを作り、それがビューコントローラの中央に表示されるようにするために

let PopSrnVar = popoverPresentationController
let ConRctVar = view.frame
PopSrnVar!.sourceRect = CGRectMake(ConRctVar.width/4, ConRctVar.height/4, ConRctVar.width/2, ConRctVar.height/2)
// To make arrows as none
PopSrnVar!.permittedArrowDirections = UIPopoverArrowDirection()

SWIFTでシンプルなソリューション:

popover!.permittedArrowDirections = nil
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top