ios - popover 在 swift 4 中不起作用
问题描述
我正在使用 UIPopoverPresentationControllerDelegate 来显示我的弹出框,它工作正常,但无法管理弹出框 viewController 的宽度和高度。以及如何在当前上下文中设置演示文稿?
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let showObjectVC = storyboard?.instantiateViewController(withIdentifier: "ShowActorDetail") as! ShowActorDetailsViewController
showObjectVC.modalPresentationStyle = .popover
showObjectVC.popoverPresentationController?.sourceView = tableView.cellForRow(at: indexPath)
showObjectVC.popoverPresentationController?.delegate = self
showObjectVC.preferredContentSize = CGSize(width: 400, height: 300)
present(showObjectVC, animated: true, completion: nil)
}
解决方案
而不是preferredContentSize
尝试使用like的sourceRect
属性,UIPopoverPresentationController
showObjectVC.popoverPresentationController?.sourceRect = tableView.cellForRow(at: indexPath)!.frame
确保根据需要指向单元格框架,以便弹出框显示在您想要的位置。
推荐阅读
- vst - 如何获取/设置在 Kontakt VSTi 中加载的乐器?
- android - 如何使用 UPI ID 检查 UPI 支付的状态
- vue.js - Vue.js 环境变量不适用于 Heroku 上的 axios
- asp.net-core - Blazor 路由器,如何在 Net Core 应用程序中拥有多个客户端 Blazor 项目?
- html - 如何显示像 x-editable 这样的输入?
- integromat - Integromat 直接从文本发送图像,无需翻译
- php - Laravel 修改具有过期日期的单元格
- jsp - JSP能否建立一个列表
- excel - 在 Perforce 中,如何安全地获取最新版本的二进制文件(如 Excel 文件),而不覆盖我的本地副本?
- oracle-apex - 在 oracle apex 的另一个字段中输入值时获取 sysdate