gpt4 book ai didi

uitableview - 如何快速将弹出窗口调整为 tableview 中内容的大小?

转载 作者:IT王子 更新时间:2023-10-29 05:05:35 26 4
gpt4 key购买 nike

我正在使用 popoverPresentationController 来显示我的弹出窗口。用于显示为弹出窗口的 UITableViewController 以编程方式创建,通常包含 1 到 5 行。如何设置此弹出窗口以根据 tableview 的内容调整大小?

我的弹出框代码:

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)
}

最佳答案

在您的 UITableViewController 的 viewDidLoad() 中,您可以添加一个观察者:

self.tableView.addObserver(self, forKeyPath: "contentSize", options: .new, context: nil)

然后添加这个方法:

override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
self.preferredContentSize = tableView.contentSize
}

最后,在 viewDidDisappear() 中,确保移除观察者:

tableView.removeObserver(self, forKeyPath: "contentSize")

这样,无论何时加载或更改,弹出框都会自动调整大小以适应内容。

关于uitableview - 如何快速将弹出窗口调整为 tableview 中内容的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29449998/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com