gpt4 book ai didi

ios - 如何与 UIActivityViewController 共享图像

转载 作者:可可西里 更新时间:2023-11-01 01:37:21 26 4
gpt4 key购买 nike

我有一个按钮可以将屏幕截图分享到 Facebook 等。

分享按钮:

ShareButton = UIButton.init(frame: CGRectMake(self.view!.frame.size.width/2 - 80,self.view!.frame.size.height/2 + 140 , 163, 54))

ShareButton.setImage(UIImage(named: "Share-Button.png"), forState: UIControlState.Normal)

ShareButton.addTarget(self, action: "shareButtonClicked:", forControlEvents: .TouchUpInside)

self.view!.addSubview(ShareButton)

ShareButton 功能:

    func shareButtonClicked(sender: UIButton!) {

UIGraphicsBeginImageContextWithOptions(view!.frame.size, false, 0.0)
view!.drawViewHierarchyInRect(view!.frame, afterScreenUpdates: true)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext();

UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil)

let activityVC = UIActivityViewController(activityItems: [image], applicationActivities: nil)

let vc = self.view?.window?.rootViewController

//New Excluded Activities Code
if #available(iOS 9.0, *) {
activityVC.excludedActivityTypes = [UIActivityTypeAirDrop, UIActivityTypeAddToReadingList, UIActivityTypeAssignToContact, UIActivityTypeCopyToPasteboard, UIActivityTypeMail, UIActivityTypeMessage, UIActivityTypeOpenInIBooks, UIActivityTypePostToTencentWeibo, UIActivityTypePostToVimeo, UIActivityTypePostToWeibo, UIActivityTypePrint]
} else {
// Fallback on earlier versions
activityVC.excludedActivityTypes = [UIActivityTypeAirDrop, UIActivityTypeAddToReadingList, UIActivityTypeAssignToContact, UIActivityTypeCopyToPasteboard, UIActivityTypeMail, UIActivityTypeMessage, UIActivityTypePostToTencentWeibo, UIActivityTypePostToVimeo, UIActivityTypePostToWeibo, UIActivityTypePrint ]
}

activityVC.popoverPresentationController?.sourceView = vc?.view
activityVC.popoverPresentationController?.sourceRect = ShareButton.frame
vc?.presentViewController(activityVC, animated: true, completion: nil)

}

当我按下按钮时,我在控制台中看到以下内容:

" whose view is not in the window hierarchy! "

什么也没有发生。

什么在起作用:

  • 截图保存在图库中

什么不起作用:

  • 显示 UIActivityViewController 让用户选择共享位置

最佳答案

几天后我自己解决了这个问题。

正确答案:

分享按钮:

ShareButton = UIButton.init(frame: CGRectMake(self.view!.frame.size.width/2 - 80,self.view!.frame.size.height/2 + 140 , 163, 54))

ShareButton.setImage(UIImage(named: "Share-Button.png"), forState: UIControlState.Normal)

ShareButton.addTarget(self, action: "pressedShareButton:", forControlEvents: .TouchUpInside)

self.view!.addSubview(ShareButton)

ShareButton 功能:

    func pressedShareButton(sender: UIButton!) {

UIGraphicsBeginImageContextWithOptions(view!.frame.size, false, 0.0)
view!.drawViewHierarchyInRect(view!.frame, afterScreenUpdates: true)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext();

UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil)

let activityVC = UIActivityViewController(activityItems: [image], applicationActivities: nil)

//New Excluded Activities Code
if #available(iOS 9.0, *) {
activityVC.excludedActivityTypes = [UIActivityTypeAirDrop, UIActivityTypeAddToReadingList, UIActivityTypeAssignToContact, UIActivityTypeCopyToPasteboard, UIActivityTypeMail, UIActivityTypeMessage, UIActivityTypeOpenInIBooks, UIActivityTypePostToTencentWeibo, UIActivityTypePostToVimeo, UIActivityTypePostToWeibo, UIActivityTypePrint]
} else {
// Fallback on earlier versions
activityVC.excludedActivityTypes = [UIActivityTypeAirDrop, UIActivityTypeAddToReadingList, UIActivityTypeAssignToContact, UIActivityTypeCopyToPasteboard, UIActivityTypeMail, UIActivityTypeMessage, UIActivityTypePostToTencentWeibo, UIActivityTypePostToVimeo, UIActivityTypePostToWeibo, UIActivityTypePrint ]
}

activityVC.popoverPresentationController?.sourceView = view
activityVC.popoverPresentationController?.sourceRect = ShareButton.frame
presentViewController(activityVC, animated: true, completion: nil)


print("Share!")
}

完美运行!祝大家好运!

关于ios - 如何与 UIActivityViewController 共享图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35398162/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com