我用popoverPresentationController来展示我的府绸.用于显示为popover的UITableViewController是通过编程创建的,通常包含1到5行.如何设置此popover以根据tableview的内容调整大小?

我的popover的代码:

if recognizer.state == .Began {
    let translation = recognizer.locationInView(view)

    // Create popoverViewController
    var popoverViewController = UITableViewController()
    popoverViewController.modalPresentationStyle = UIModalPresentationStyle.Popover
    popoverViewController.tableView.backgroundColor = UIColor.popupColor()

    // Settings for the popover
    let popover = popoverViewController.popoverPresentationController!
    popover.delegate = self
    popover.sourceView = self.view
    popover.sourceRect = CGRect(x: translation.x, y: translation.y, width: 0, height: 0)
    popover.backgroundColor = UIColor.popupColor()

    presentViewController(popoverViewController, animated: true, completion: nil)
}

推荐答案

签出preferredContentSize property of UIViewController:

let height = yourDataArray.count * Int(popOverViewController.tableView.rowHeight)
popOverViewController.preferredContentSize = CGSize(width: 300, height: height)

Swift相关问答推荐

运行异步任务串行运行

按Esc键时执行操作(工作表)

向文本元素添加背景色失败

字符串目录不适用于SWIFT包

在visionOS 1.0中已弃用';base Color';:请改用`Color`属性

正在接收具有不完整数据错误的URL请求

如何从UIKit中的AttributeContainer获取属性并将其分配给某个变量

macOS 的窗口框架中使用的真实类型和真实类型是什么?

当变量首次用于其自己的初始化时,如何清除变量...在初始化之前使用错误?

您是否必须手动指定您的 DispatchQueue 是串行的?

Swift并发:为什么不在其他后台线程上执行任务

SwiftUI - Select 器没有 Select 值

响应 UITextField (UIViewRepresentable) 中的特定按键

不要从 NumberFormatter 获取货币符号

单元测试和私有变量

将if let与逻辑或运算符一起使用

在 Swift 中子类化 NSObject - 初始化器的最佳实践

应用程序包不包含有效标识符

如何快速将弹出框调整为表格视图中内容的大小?

Swift - 要求实现协议的类是某个类的子类