【问题标题】:Custom size UIModalPresentationPopover on iPhoneiPhone 上的自定义大小 UIModalPresentationPopover
【发布时间】:2016-02-12 14:07:54
【问题描述】:

我正在尝试将Popover 添加到我的自定义键盘以在长按按钮时显示替代表情符号,但我似乎无法将 Popover 设置为自定义大小并且它似乎显示为填充父视图的模态视图...

我的 UIViewController 初始化如下:

self.popoverViewController = [[PopoverDetailViewController alloc] init];
self.popoverViewController.preferredContentSize = CGSizeMake(100, 50);

然后我这样处理长按:

- (void)longPress:(UILongPressGestureRecognizer*)gesture {
    if (gesture.state == UIGestureRecognizerStateEnded ) {
        self.popoverViewController.modalPresentationStyle = UIModalPresentationPopover;

        UIPopoverPresentationController *presentationController = [self.popoverViewController popoverPresentationController];
        presentationController.permittedArrowDirections = UIPopoverArrowDirectionUp | UIPopoverArrowDirectionDown;
        presentationController.sourceView = self.view;
        presentationController.sourceRect = CGRectMake(30, 50, 10, 10);

        [self presentViewController:self.popoverViewController animated: YES completion: nil];
    }
}

理想情况下,我希望Popover 出现在长按按钮上并具有自定义大小... 知道我需要改变什么吗?

【问题讨论】:

  • 这就是它的工作方式。不幸的是,最好的选择似乎是 WYPopover。我说“不幸”是因为它有问题而且写得不是很好。
  • @Avi 是的,我希望我可以避免这种情况 :( 我在让它在应用程序扩展中工作时遇到了一些问题

标签: ios objective-c iphone popover


【解决方案1】:

需要更多信息,但这可能是自适应演示风格的结果。默认情况下,至少在 iPhone 上,弹出框似乎全屏显示。

下面是一些代码,this tutorial 也可能有帮助。

self.popoverPresentationController.delegate = yourDelegate;

(UIModalPresentationStyle)adaptivePresentationStyleForPresentationController:(UIPresentationController *)controller
{
    return UIModalPresentationNone;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-25
    • 1970-01-01
    • 2011-04-22
    • 2012-05-06
    • 2014-03-02
    • 1970-01-01
    • 1970-01-01
    • 2010-10-21
    相关资源
    最近更新 更多