【问题标题】:swift post gif animation to twitter快速将 gif 动画发布到 Twitter
【发布时间】:2015-08-21 19:25:12
【问题描述】:

使用 swift 语言,我正在尝试将创建的 gif 动画发布到 twitter,但是该界面仅支持 addImage - 发布普通图像。当我将 gif 保存到照片时,使用

let data = NSData(contentsOfURL: url)
            var library : ALAssetsLibrary = ALAssetsLibrary()

            library.writeImageDataToSavedPhotosAlbum(data, metadata: nil, completionBlock:{
                (assetURL: NSURL!, error: NSError!) -> Void in
            })

它工作正常,可以从照片中发布 gif 动画,但是,在 twitter 界面中没有这样的东西可以从应用程序中发布它。

有一些建议,例如创建带有图像的动画图像:

 let im = UIImage.animatedImageWithImages(imga, duration: 0.1)
                tweetSheet.addImage(im)

但 id 也不起作用,发布静态图像。

还有其他选择吗?

【问题讨论】:

    标签: xcode swift animation twitter uiimage


    【解决方案1】:

    Twitter 现在支持动画 Gif,所以不确定您是否解决了问题。我已经用动画 Gif 测试了这段代码。

    func tweetWithImage(data:NSData)
    {
    
        let account = ACAccountStore()
        let accountType = account.accountTypeWithAccountTypeIdentifier(
            ACAccountTypeIdentifierTwitter)
    
        account.requestAccessToAccountsWithType(accountType, options: nil,
            completion: {(success: Bool, error: NSError!) -> Void in
                if success {
                    let arrayOfAccounts =
                    account.accountsWithAccountType(accountType)
    
                    if arrayOfAccounts.count > 0 {
                        let twitterAccount = arrayOfAccounts.first as! ACAccount
                        var message = Dictionary<String, AnyObject>()
                        message["status"] = "Test Tweet with image"
    
                        let requestURL = NSURL(string:
                            "https://api.twitter.com/1.1/statuses/update.json")
                        let postRequest = SLRequest(forServiceType:
                            SLServiceTypeTwitter,
                            requestMethod: SLRequestMethod.POST,
                            URL: requestURL,
                            parameters: message)
    
                        postRequest.account = twitterAccount
                        postRequest.addMultipartData(data, withName: "media", type: nil, filename: nil)
    
                        postRequest.performRequestWithHandler({
                            (responseData: NSData!,
                            urlResponse: NSHTTPURLResponse!,
                            error: NSError!) -> Void in
                            if let err = error {
                                println("Error : \(err.localizedDescription)")
                            }
                            println("Twitter HTTP response \(urlResponse.statusCode)")
    
                        })
                    }
                }
                else
                {
                    // do what you want here
    
                }
        })
    }
    

    我已经在我的博客上放了一个教程以及 GitHub 中的相应项目,该项目说明了使用 SLRequest 以便支持动画 GIF...你可以在这里看到它:http://www.iosinsight.com/twitter-integration-with-swift/

    注意:此答案中的博客代码和 sn-p 已从使用“update_with_media”更新为简单地“更新”请求 URL,因为后者在 Twitter API 中已弃用。

    【讨论】:

      猜你喜欢
      • 2014-09-12
      • 2015-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-12
      • 1970-01-01
      • 2017-01-18
      • 2011-10-31
      相关资源
      最近更新 更多