Как создать пользовательский интерактивный твит или сообщение Facebook с помощью UIActivityViewController

Я пытаюсь понять, как создать пользовательский интерактивный пост или твиты вроде SoundCloud ниже:

(разделяется непосредственно с Sound Cloud)

Часть, выделенная желтым цветом, является той частью, которая меня интересует, поскольку, насколько я могу судить, когда дело доходит до UIActivityViewController (для этого используется Sound Cloud), единственными объектами, которые работают для совместного использования, являются изображения и строки.

Кроме того, если вы хотите нажать выделенную желтым цветом, этот экран появится в твиттере:

введите описание изображения здесь

КАК ДЕЙСТВУЮТ, ЧТО!? У них есть КНОПКА ПАУЗА И ВСЕ!

Это моя попытка сделать это...

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 без указанных параметров обмена.

Я понимаю, что некоторые могут рассмотреть этот широкий вопрос, но если бы вы могли хотя бы указать мне в правильном направлении, я был бы очень благодарен. Спасибо.

Ответ 1

Это работает. Для полного списка мест назначения для совместного использования используйте его на своем устройстве, а не в симуляторе. Симулятор дает вам меньший список.

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

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

    // let 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
}

Ответ 2

Для первой части она воспроизводит только кнопку, которая нажимает на вас, чтобы отобразить просмотр плеера.

Второе: вы можете сделать это, просто нажав новый viewController, используя любой всплывающий модуль: CWPOP как ex. Или то, что вам подходит или как Twitter здесь, я не уверен, но, вероятно, они делают свои собственные, и вы просто создаете нормальный вид, в котором есть игра и все такое.

Они использовали это раньше и позволяют играть музыку во время прохождения твитов, что было лучше для меня, по крайней мере.