2016-04-16 20 views
1

Ich versuche, benutzerdefinierte Freigabe Button in Facebook SDK zu erstellen, aber ich habe ein Problem damit. Im Anschluss an Facebook Dokumentation, Share-Taste in meinem Fall sieht wie folgt aus:So erstellen Sie eine benutzerdefinierte Freigabe Schaltfläche in Facebook SDK

let content = FBSDKShareLinkContent() 
content.contentTitle = "\(postTitle)" 
content.contentURL = NSURL(string:"\(www)") 

let shareButton = FBSDKShareButton() 
shareButton.shareContent = content 
shareButton.center = selfview.center 
self.view.addSubiview(shareButton) 

es funktioniert, aber ich habe eine Standard-Schaltfläche, die in meinem Layout sieht nicht gut aus. Ich möchte eine Möglichkeit haben, meinen Inhalt mit meinem eigenen Knopf facebookShareButton: UIButton zu teilen. Kann ich diese Aktion in meiner eigenen Taste aufrufen? Wenn ja, wie kann ich das tun?

Antwort

3

Ich habe eine Lösung für dieses Problem:

Wir brauchen @IBOutlet weak var facebookOutlet: UIButton! einen UIButton Auslass zum Beispiel erstellen und fügen Sie dann Code in viewDidLoad()

facebookOutlet.addTarget(self, action: #selector(ViewController.postFacebook(_:)), forControlEvents: .TouchUpInside) 

Dann in viewDidAppear() wir hinzufügen müssen:

let content = FBSDKShareLinkContent() 
content.contentTitle = "\(postTitle)" 
content.contentURL = NSURL(string:"\(www)") 

let shareButton = FBSDKShareButton() 
shareButton.shareContent = content 
shareButton.center = self.view.center 
self.view.addSubview(shareButton) 

Dann in Aktion unserer Schaltfläche müssen wir hinzufügen:

func postFacebook(sender: UIButton){ 
    shareButton.sendActionsForControlEvents(.TouchUpInside) 
} 

Es funktioniert perfekt und ermöglicht es uns, eine benutzerdefinierte Facebook-Schaltfläche zu erstellen.

+0

danke, 'sendActionsForControlEvents (.TouchUpInside)' - der Hauptpunkt. – dimpiax

+0

Wie werden Sie Zugriff auf 'shareButton' in Postfacebook-Methode? @PiterPan – Aashish

+0

Definieren Sie 'let shareButton = FBSDKShareButton()' als Klasseneigenschaft, dann haben Sie die Möglichkeit, es im Spaßbereich @Aashish zu verwenden – PiterPan

Verwandte Themen