2016-08-08 3 views
12

Ich versuche, aus schaffen, um zu Abbildung, wie ein Benutzer interaktiven Beitrag zu erstellen oder Art von tweet wie Soundcloud hier unten ist:wie Benutzer interaktive Tweet oder Facebook Post mit UIActivityViewController

(Shared directly from Sound Cloud)

Der Anteil gelb markiert ist der Teil, der mich interessiert, denn soweit ich weiß, wenn es um UIActivityViewController geht (was Sound Cloud dafür verwendet), sind die einzigen Objekte, die für die gemeinsame Nutzung funktionieren, Bilder und Zeichenketten.

Weiter mehr, wenn Sie waren der Abschnitt tippen gelb markiert dieser Bildschirm auf Twitter Pop-up würde:

enter image description here

WIE sie das tun !? SIE HABEN EINE PAUSE-TASTE UND ALLES!

Dies ist mein Versuch, das zu tun ...

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: {}) 
    } 

..., die nicht funktioniert. Das UIActivityViewController-Fenster wird angezeigt und es sind keine Freigabeoptionen angegeben.

Ich verstehe, dass einige dies als eine breite Frage betrachten, aber wenn Sie mir zumindest in die richtige Richtung zeigen könnten, wäre ich sehr dankbar. Danke.

+0

Ihre gigantischen Bilder machen Ihre Frage schwer zu lesen, ich schlage vor, Sie verkleinern die Bildgröße, so würde die Frage ansprechend und Sie würden mehr Aufmerksamkeit bekommen – Honey

Antwort

2

Das funktioniert. Für die vollständige Liste der Freigabeziele führen Sie es auf Ihrem Gerät und nicht den Simulator. Der Simulator gibt Ihnen eine kleinere Liste.

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

ps Sie müssen bei Facebook und Twitter für die Optionen angemeldet sein, um sie zu teilen auftauchen. –

2

Für den ersten Teil ist es nur Play-Taste, die Sie klickt, um die Player-Ansicht zu öffnen.

Zweitens: Sie können dies tun, indem Sie einfach einen neuen viewController, verwenden Sie einen Popup-Pod: CWPOP als ex. Oder was auch immer zu dir passt oder als Twitter hier bin ich mir nicht sicher, aber wahrscheinlich machen sie ihre eigenen, und Sie bauen nur eine normale Ansicht, die das Spiel und alles hat.

Sie verwendeten es besser vorher und ließen Sie die Musik während des Durchlaufen Tweets spielen, das war für mich mindestens viel besser.

+0

Vielen Dank für Ihre Antwort, aber wissen Sie, wie ich tatsächlich einen View-Controller mit UIActivityViewController sage? –

Verwandte Themen