gpt4 book ai didi

ios - Swift:截取 viewController 的屏幕截图并在 Facebook 上分享

转载 作者:行者123 更新时间:2023-11-30 12:00:05 29 4
gpt4 key购买 nike

我创建了以下函数来在 Facebook 上分享帖子:

@IBAction func socialShare(_ sender: Any){
//Alert
let alert = UIAlertController(title: "Share", message: "First share!", preferredStyle: .actionSheet)

//First action
let actionOne = UIAlertAction(title: "Share on Facebook", style: .default) { (action) in

//Checking if user is connected to Facebook
if SLComposeViewController.isAvailable(forServiceType: SLServiceTypeFacebook)
{
let post = SLComposeViewController(forServiceType: SLServiceTypeFacebook)!
post.setInitialText("First")
post.add(UIImage(named: "Mylogo.png"))
self.present(post, animated: true, completion: nil)
} else {self.showAlert(service: "Facebook")}
}

let actionThree = UIAlertAction(title: "Cancel", style: .cancel, handler: nil)
//Add action to action sheet
alert.addAction(actionOne)
alert.addAction(actionThree)

//Present alert
self.present(alert, animated: true, completion: nil)
}

func showAlert(service:String){
let alert = UIAlertController(title: "Error", message: "You are not connected to \(service)", preferredStyle: .alert)
let action = UIAlertAction(title: "Dismiss", style: .cancel, handler: nil)

alert.addAction(action)
present(alert, animated: true, completion: nil)
}

但我真正想做的是共享图像,并且该图像必须是用户点击共享按钮的 viewController 的屏幕截图。这可能吗?如果是这样,怎么办?

更新:

对于屏幕截图,我找到了这样的函数:

func screenShotMethod() {
//Create the UIImage
UIGraphicsBeginImageContext(view.frame.size)
view.layer.renderInContext(UIGraphicsGetCurrentContext())
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
//Save it to the camera roll
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil)
}

但我不知道如何在我的代码中实现它。

最佳答案

要做到这一点,你可以这样做

func screenShotMethod() -> UIImage? {
//Create the UIImage
UIGraphicsBeginImageContext(view.frame.size)
view.layer.render(in: UIGraphicsGetCurrentContext()!)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image
}

并将其添加到:

    let post = SLComposeViewController(forServiceType: SLServiceTypeFacebook)!
post.setInitialText("First")
post.add(screenShotMethod())
self.present(post, animated: true, completion: nil)

关于ios - Swift:截取 viewController 的屏幕截图并在 Facebook 上分享,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47352380/

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