如何使用UIActivityViewController创建用户交互式的推特或Facebook帖子

12

我正在尝试弄清如何创建用户交互式的帖子或推文,就像下面的 SoundCloud 中所示:

(Shared directly from Sound Cloud)

我感兴趣的是黄色部分,因为据我所知,当涉及到 UIActivityViewController(这是 SoundCloud 用于此的工具)时,仅可共享图像和字符串。

此外,如果您点击黄色部分,此屏幕将在 Twitter 上弹出:

enter image description here

他们是如何做到的?他们甚至有暂停按钮!

这是我尝试做到这一点的方式...

func displayShareSheet(shareContent:String) {

        let someView:CustomView = CustomView() // CustomView is a subclass of UIView

        let activityViewController = UIActivityViewController(activityItems: [someView], applicationActivities: nil)
        presentViewController(activityViewController, animated: true, completion: {})
    }

...不能正常工作。UIActivityViewController表单弹出,但未显示共享选项。

我知道有些人可能认为这是一个广泛的问题,但如果您能至少指引我正确的方向,我将非常感激。谢谢。


你的巨大图片使得你的问题难以阅读,我建议你缩小图片尺寸,这样问题会更吸引人,你也会得到更多关注。 - mfaani
2个回答

2

第一部分:只有播放按钮可以点击,弹出播放器视图。

第二部分:您可以通过弹出一个新的viewController来完成这个操作,使用任何弹出式库,例如CWPOP。或者您也可以根据自己的需要选择其他适合的库,Twitter可能是使用他们自己开发的方法实现的,您只需构建一个普通的视图,其中包含播放和其他元素即可。

他们以前做得更好,让您在浏览推文时就能听歌,我至少觉得那样要好得多。


谢谢您的回复,但是您知道我如何通过UIActivityViewController传递一个视图控制器吗? - Garret Kaye

2

这个功能是可用的。要查看完整的分享目标列表,请在设备上运行它,而不是模拟器。模拟器只会给你一个较小的列表。

func createActivityController() -> UIActivityViewController {
    let someText:String = textView.text

    let google = NSURL(string:"http://google.com/")!

    // let's add a String and an NSURL
    var activityViewController = UIActivityViewController(
        activityItems: [someText, google],
        applicationActivities: nil)

    activityViewController.completionHandler = {(activityType, completed:Bool) in
        if !completed {
            print("cancelled")
            return
        }

        if activityType == UIActivityTypePostToTwitter {
            print("twitter")
        }

        if activityType == UIActivityTypeMail {
            print("mail")
        }
    }

    // you can specify these if you'd like.
    //        activityViewController.excludedActivityTypes =  [
    //            UIActivityTypePostToTwitter,
    //            UIActivityTypePostToFacebook,
    //            UIActivityTypePostToWeibo,
    //            UIActivityTypeMessage,
    //            UIActivityTypeMail,
    //            UIActivityTypePrint,
    //            UIActivityTypeCopyToPasteboard,
    //            UIActivityTypeAssignToContact,
    //            UIActivityTypeSaveToCameraRoll,
    //            UIActivityTypeAddToReadingList,
    //            UIActivityTypePostToFlickr,
    //            UIActivityTypePostToVimeo,
    //            UIActivityTypePostToTencentWeibo
    //        ]

    return activityViewController
}

1
请注意,您需要登录Facebook和Twitter才能看到分享选项。 - Gene De Lisa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接