ios - 活动视图控制器未显示整个弹出窗口
问题描述
我正在尝试制作一个绘图应用程序,并且我想添加活动视图控制器。它适用于 iPhone,但不会在 iPad 上显示整个视图控制器。根据我阅读的内容,我尝试了许多不同的方法,但结果是一样的。任何帮助表示赞赏。
代码:@IBAction func actionsTapped(_ sender: Any) {
// Setting description
let message = "Actions for your drawing"
// Get the image to save
let image = getImage()
let activityViewController : UIActivityViewController = UIActivityViewController(activityItems: [message, image], applicationActivities: nil)
// Ipad popup
activityViewController.popoverPresentationController?.sourceView = (self.view)
// Remove Ipad arrow
activityViewController.popoverPresentationController?.permittedArrowDirections = UIPopoverArrowDirection.down
activityViewController.popoverPresentationController?.sourceRect = CGRect(x: 150, y: 150, width: 0, height: 0)
// Pre-configuring activity items
activityViewController.activityItemsConfiguration = [
UIActivity.ActivityType.message,
UIActivity.ActivityType.print,
UIActivity.ActivityType.saveToCameraRoll,
UIActivity.ActivityType.airDrop
] as? UIActivityItemsConfigurationReading
// Exclude
activityViewController.excludedActivityTypes = [
UIActivity.ActivityType.postToWeibo,
UIActivity.ActivityType.addToReadingList,
UIActivity.ActivityType.postToFlickr,
UIActivity.ActivityType.postToVimeo,
UIActivity.ActivityType.postToTencentWeibo,
UIActivity.ActivityType.postToFacebook
]
activityViewController.isModalInPresentation = true
self.present(activityViewController, animated: true, completion: nil)
}
正如有人指出的那样,我尝试更改 sourceRect 中的高度和宽度不起作用。请参阅下面我更改的位置
activityViewController.popoverPresentationController?.sourceRect = CGRect(x: 150, y: 150, width: 0, height: 0)
至
activityViewController.popoverPresentationController?.sourceRect = CGRect(x: 150, y: 150, width: 500, height: 500)
我最初的想法是 x 和 y 会改变弹出窗口的位置,高度和宽度会改变大小,但在 sourceRect 中似乎是相反的。
解决方案
听起来你误解了它sourceRect
是什么。它本身与活动视图控制器的大小无关。它确定箭头指向的位置。
活动视图控制器总是有自己的完整尺寸。我怀疑这里出了什么问题是由于这条线:
activityViewController.popoverPresentationController?.permittedArrowDirections = UIPopoverArrowDirection.down
这迫使整个活动视图控制器出现在源矩形上方(即更靠近屏幕顶部)——但没有空间。如果你只是剪掉那条线,活动视图控制器可能会出现在有空间的地方。
推荐阅读
- wpf - 应用控件模板后 WPF XAML 文本框不可编辑
- python - Python - 重新分配具有最低可能值的优先级列表
- jitsi-meet - 如何理解 Jitsi 的源代码以根据需要修改或添加一些功能
- sql - 如何根据表数据返回标志值
- google-cloud-dataflow - 是否可以直接覆盖在构建时设置的 Dataflow 模板参数?
- javascript - 如何在 AGGRID 中清除过滤器时获取列名?
- sql - SQL Postgres 显示边缘的详细信息
- laravel - 从选定的组中挑选一张图片并将其存储在数据库中 - Laravel
- scala - PySpark 中的 SparkSession 和 SparkContext 启动
- amazon-web-services - 具有相同自定义域、不同路径映射的多个 SAM 模板