我试图制作一个绘图应用程序,我想添加活动视图控制器。它在iPhone上工作,但它不会在iPad上显示整个视图控制器。我尝试了许多不同的方法,基于我所读到的,但结果是一样的。任何帮助都是感激的。
代码:@IBAction func actionsTapped(_发件人: 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中似乎正好相反。
发布于 2021-02-15 22:30:13
听起来你好像误解了sourceRect
是什么。它本身与活动视图控制器的大小无关。它确定箭头指向的位置。
活动视图控制器总是有它自己的完整大小。我怀疑这里出了什么问题是因为这句话:
activityViewController.popoverPresentationController?.permittedArrowDirections = UIPopoverArrowDirection.down
这迫使整个活动视图控制器出现在源rect (即更多地指向屏幕顶部)之上,但没有空间。如果您刚刚切断了这条线,活动视图控制器可能会出现在有空间的地方。
https://stackoverflow.com/questions/66214685
复制相似问题