使用 Swift 在 Share 中自定义内容

Cal*_*ndy 1 share swift

我正在尝试为我的游戏制作一个分享按钮。您知道,当您单击时,弹出菜单会显示您的选项。我想知道如何让不同的选项说不同的事情。我还想知道如何制作“保存到相机胶卷”选项。我将在下面发布我的代码。

@IBAction func share(sender: UIButton) {

    let firstActivity = "Yes! I scored \(ScoreNumber) in Dotcha! #dotcha @Snowcapps_Dev https://itunes.apple.com/us/app/dotcha!/id977870313?ls=1&mt=8" 

    let activityViewController : UIActivityViewController = UIActivityViewController(activityItems: [firstActivity], applicationActivities: il)        
    self.presentViewController(activityViewController, animated: true, completion: nil)        
}
Run Code Online (Sandbox Code Playgroud)

Vic*_*ler 5

如果要为 Twitter、Facebook、Mail 等自定义文本,可以UIActivityItemProvider通过以下方式从该类继承:

class CustomProvider : UIActivityItemProvider {

    var facebookMessage: String!
    var twitterMessage: String!
    var emailMessage: String!

    init(placeholderItem: AnyObject, facebookMessage: String, twitterMessage: String, emailMessage: String) {
        super.init(placeholderItem: placeholderItem)
        self.facebookMessage = facebookMessage
        self.twitterMessage = twitterMessage
        self.emailMessage = emailMessage
    }

    override var item: Any {

        switch self.activityType! {
        case .postToFacebook:
            return self.facebookMessage!
        case .postToTwitter:
            return self.twitterMessage!
        case .mail:
            return self.emailMessage!
        default:
            return "Any Message"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后你可以UIActivityViewController通过以下方式调用,例如:

let firstActivityItem = CustomProvider(placeholderItem: "Default", facebookMessage: "Facebook", twitterMessage: "Twitter", emailMessage: "Mail")
let secondActivityItem = URL(string: "http://www.google.com")!
let image = UIImage(named: "nameofYOurImage.ext")!

let activityViewController = UIActivityViewController(
        activityItems: [firstActivityItem, secondActivityItem, image], applicationActivities: nil)    

self.presentViewController(activityViewController, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

CustomProvider课堂上,我只设置了 Facebook、Twitter 和 Mail,但如果您愿意,可以设置更多,这取决于您。

我希望这可以帮助你。