首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iPhone Popover关闭AutoLayout

iPhone Popover关闭AutoLayout
EN

Stack Overflow用户
提问于 2015-07-10 18:46:34
回答 2查看 567关注 0票数 3

我正在使用一个关闭自动布局的旧应用程序,我只是遇到了一个需要在iPhone上显示弹出窗口的地方。

我使用的代码是例程:

代码语言:javascript
复制
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        if segue.identifier == "popoverSegue" {
            let popoverViewController = segue.destinationViewController as! UIViewController
            popoverViewController.modalPresentationStyle = UIModalPresentationStyle.Popover
            popoverViewController.popoverPresentationController!.delegate = self
        }
    }

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

自动布局的示例结果:

自动布局关闭的示例结果:

有没有一种方法可以在没有自动布局的情况下显示使用苹果内置系统的弹出程序?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-14 17:28:24

我相信最终的答案是,如果你关闭自动布局,你就不能在iPhone上使用苹果内置的popover系统。

我强烈建议编写自己的基本UIView显示系统,以适当地处理显示/隐藏视图。

提示:内置弹出系统最方便的部分是,它禁用背景,指向相关项目,并关闭外部龙头等。

如果您可以在没有指向的情况下生活,那么其他一切都很容易复制,因为您已经关闭了自动布局。您可以将视图大小锁定为"iPhone“,然后使UIView背景色变得清晰和完整,并将适当大小的较小的"content”视图放在其上。透明视图禁用对其下的项目的点击,如果需要,您可以应用一个点击手势来处理解雇。

票数 2
EN

Stack Overflow用户

发布于 2015-07-13 15:32:36

如果您使用IOS 8及以上版本,您可以尝试这样做(目标-C :( ) )。

代码语言:javascript
复制
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) {
    UIViewController *popoverViewController = segue.destinationViewController;
    popoverViewController.modalPresentationStyle = UIModalPresentationPopover;
    popoverViewController.popoverPresentationController.delegate = self;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31348151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档