Activity 视图控制器未显示整个弹出窗口
Activity View Controller not showing the entire popup
我正在尝试制作一个绘图应用程序,我想添加 activity 视图控制器。它适用于 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
是什么。它本身与 activity 视图控制器的大小无关。它确定箭头指向的位置。
activity 视图控制器总是有自己的全尺寸。我怀疑这里出了什么问题是因为这一行:
activityViewController.popoverPresentationController?.permittedArrowDirections = UIPopoverArrowDirection.down
这会强制整个 activity 视图控制器出现在 上方 源矩形(即更靠近屏幕顶部)——但是没有空间。如果你只是剪掉那条线,activity 视图控制器可能会出现在 是 房间的地方。
我正在尝试制作一个绘图应用程序,我想添加 activity 视图控制器。它适用于 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
是什么。它本身与 activity 视图控制器的大小无关。它确定箭头指向的位置。
activity 视图控制器总是有自己的全尺寸。我怀疑这里出了什么问题是因为这一行:
activityViewController.popoverPresentationController?.permittedArrowDirections = UIPopoverArrowDirection.down
这会强制整个 activity 视图控制器出现在 上方 源矩形(即更靠近屏幕顶部)——但是没有空间。如果你只是剪掉那条线,activity 视图控制器可能会出现在 是 房间的地方。