当前位置: 首页 > 面试题库 >

如何在iOS 8中正确显示弹出框

党航
2023-03-14
问题内容

我正在尝试将UIPopoverView添加到我的Swift iOS
8应用程序中,但由于弹出框未以正确的形状显示,因此无法访问PopoverContentSize属性。我的代码:

var popover: UIPopoverController? = nil

    func addCategory() {

    var newCategory = storyboard.instantiateViewControllerWithIdentifier("NewCategory") as UIViewController
    var nav = UINavigationController(rootViewController: newCategory)
    popover = UIPopoverController(contentViewController: nav)
    popover!.setPopoverContentSize(CGSizeMake(550, 600), animated: true)
    popover!.delegate = self
    popover!.presentPopoverFromBarButtonItem(self.navigationItem.rightBarButtonItem, permittedArrowDirections: UIPopoverArrowDirection.Any, animated: true)
}

输出:

在此处输入图片说明

当我通过UIPopoverPresentationController做同样的事情时,我仍然没有完成它。这是我的代码:

func addCategory() {

    var popoverContent = self.storyboard.instantiateViewControllerWithIdentifier("NewCategory") as UIViewController
    var nav = UINavigationController(rootViewController: popoverContent)
    nav.modalPresentationStyle = UIModalPresentationStyle.Popover
    var popover = nav.popoverPresentationController as UIPopoverPresentationController
    popover.delegate = self
    popover.popoverContentSize = CGSizeMake(1000, 300)
    popover.sourceView = self.view
    popover.sourceRect = CGRectMake(100,100,0,0)

    self.presentViewController(nav, animated: true, completion: nil)

}

我得到完全相同的输出。

如何自定义弹出窗口的大小?任何帮助将不胜感激!


问题答案:

好的,一位室友看了看,发现:

 func addCategory() {

    var popoverContent = self.storyboard?.instantiateViewControllerWithIdentifier("NewCategory") as UIViewController
    var nav = UINavigationController(rootViewController: popoverContent)
    nav.modalPresentationStyle = UIModalPresentationStyle.Popover
    var popover = nav.popoverPresentationController
    popoverContent.preferredContentSize = CGSizeMake(500,600)
    popover.delegate = self
    popover.sourceView = self.view
    popover.sourceRect = CGRectMake(100,100,0,0)

    self.presentViewController(nav, animated: true, completion: nil)

}

就是这样做。

您不再需要与popover本身对话,而是与其中的View Controller对话,以通过调用属性来设置内容大小
preferredContentSize



 类似资料:
  • 我有一个,我需要在其中显示孟加拉语文本,例如: বাংলাদেশ 但是我只能看到长方形的盒子。我怎么才能正确地展示孟加拉文字呢?

  • 问题内容: 我试图用选项卡栏模仿UINavigationController的新功能。我已经看到了很多答案,它们要么指向在viewController上设置,仅将其完全隐藏而不是在点击时隐藏。 提前致谢 编辑:根据下面我的建议 实际上确实隐藏了tabBar(在点击时切换true / false),但是没有动画。我将作为一个单独的问题提出。 问题答案: 经过大量的探索并尝试了各种方法来使用Swift

  • 问题内容: 我有一个使用ncurses用C编写的程序。它让用户输入并显示它。如果用户输入utf8字符,它将无法正确显示。 我将输入的字符用户保存到文件中。而且我直接在Shell中将此文件正确显示。 我搜索了stackoverflow和google,并尝试了几种方法(例如与ncursesw链接)显示不正确。 我: 可以正确显示用户输入的内容。 如何使ncurses正确显示UTF-8字符? 使用ncu

  • 我想删除一个DatePicker的组合框,而只显示该DatePicker的日历。 此处解释:JavaFX extract calendar-popup from DatePicker/only show popup ?

  • 描述 (Description) 弹跳动画效果用于在击中后快速向上,向后或远离表面移动元素。 语法 (Syntax) @keyframes bounceOutRight { 0% { transform: translateX(0); } 20% { opacity: 1; transform: translateX(-20px); }