首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >没有显示整个弹出窗口

没有显示整个弹出窗口
EN

Stack Overflow用户
提问于 2021-02-15 20:02:55
回答 1查看 291关注 0票数 0

我试图制作一个绘图应用程序,我想添加活动视图控制器。它在iPhone上工作,但它不会在iPad上显示整个视图控制器。我尝试了许多不同的方法,基于我所读到的,但结果是一样的。任何帮助都是感激的。

代码:@IBAction func actionsTapped(_发件人: Any) {

代码语言:javascript
运行
复制
    // 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中的高度和宽度是行不通的。见下面我改变的地方

代码语言:javascript
运行
复制
activityViewController.popoverPresentationController?.sourceRect = CGRect(x: 150, y: 150, width: 0, height: 0)

代码语言:javascript
运行
复制
activityViewController.popoverPresentationController?.sourceRect = CGRect(x: 150, y: 150, width: 500, height: 500)

我最初的想法是,x和y会改变弹出窗口的位置,高度和宽度会改变大小,但在sourceRect中似乎正好相反。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-15 22:30:13

听起来你好像误解了sourceRect是什么。它本身与活动视图控制器的大小无关。它确定箭头指向的位置。

活动视图控制器总是有它自己的完整大小。我怀疑这里出了什么问题是因为这句话:

代码语言:javascript
运行
复制
activityViewController.popoverPresentationController?.permittedArrowDirections = UIPopoverArrowDirection.down

这迫使整个活动视图控制器出现在源rect (即更多地指向屏幕顶部)之上,但没有空间。如果您刚刚切断了这条线,活动视图控制器可能会出现在有空间的地方。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66214685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档