是否有可能呈现酥料饼没有任何类型的指向某处箭头?

有帮助吗?

解决方案

是有可能只是做:

 [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
}

设置permittedArrowDirections为0。

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);

在迅速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];

不,如果你不希望显示箭头使用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