UIPopover без каких-либо стрелок - PullRequest
50 голосов
/ 04 августа 2010

Можно ли представить поповер без каких-либо стрелок, указывающих куда-то?

Ответы [ 17 ]

2 голосов
/ 01 апреля 2018

В Swift вы можете просто сделать:

popoverPresentationController.permittedArrowDirections = []

Так как в другой конфигурации вы могли бы использовать:

popoverPresentationController.permittedArrowDirections = [.up, .down]
1 голос
/ 18 марта 2017

В Swift 3 вы можете создать расширение UIPopoverArrowDirection для этого:

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

, и вы можете сделать:

popoverPresentationController!.permittedArrowDirections = .noArrow
1 голос
/ 03 декабря 2012

Попробуйте это

[popOverController presentPopoverFromRect:CGRectMake(0, 0, 30, 40) inView:popOverContentView permittedArrowDirections:0 animated:NO];
1 голос
/ 27 августа 2013

Я использую popover, чтобы показать меню в зависимости от координаты касания.В этом случае popover использует максимальную высоту self.view

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

Но когда я использую 0-направление.Прямоугольник Popover не устанавливает максимальную высоту и может быть установлен только соответствующим свойством.

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

Надеюсь, это поможет: Помощь с размером UIPopOverController

1 голос
/ 14 июля 2014

Не используйте Popovers, если вы не хотите показывать стрелки. Представьте свой контроллер представления как модальный и используйте вместо него UIModalPresentationFormSheet.

Пример:

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

}];
0 голосов
/ 27 мая 2015

Простое решение в SWIFT:

popover!.permittedArrowDirections = nil
0 голосов
/ 30 сентября 2016

Для того, чтобы переместить направление «нет» и сделать так, чтобы оно появилось в центре контроллера вида:

...