如何在 Facebook SDK 中创建自定义分享按钮

Posted

技术标签:

【中文标题】如何在 Facebook SDK 中创建自定义分享按钮【英文标题】:How to create a custom share button in Facebook SDK 【发布时间】:2016-04-16 18:15:10 【问题描述】:

我尝试在 Facebook SDK 中创建自定义分享按钮,但我遇到了问题。按照 Facebook 文档,在我的案例中分享 Button 如下所示:

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)

它有效,但我有一个默认按钮,在我的布局中看起来不太好。我希望有可能使用我自己的按钮facebookShareButton: UIButton 分享我的内容。我是否可以在自己的按钮中调用此操作?如果是,我该怎么做?

【问题讨论】:

【参考方案1】:

我有解决这个问题的办法:

我们需要创建一个 UIButton 插座,例如@IBOutlet weak var facebookOutlet: UIButton!,然后在viewDidLoad() 中添加代码

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

那么在viewDidAppear()中我们需要添加:

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)

然后在我们的按钮动作中,我们需要添加:

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

它运行完美,让我们可以创建一个自定义的 facebook 按钮。

【讨论】:

谢谢,sendActionsForControlEvents(.TouchUpInside) - 重点。 您将如何在 postfacebook 方法中访问“shareButton”? @PiterPan let shareButton = FBSDKShareButton()定义为类属性,那么您将有可能在有趣的范围内使用它@Aashish【参考方案2】:

使用最新的 FBSDKShareKit,您可以将以下内容添加到自定义按钮的操作处理程序中

let dialog = ShareDialog()
dialog.shareContent = content
dialog.show()

【讨论】:

以上是关于如何在 Facebook SDK 中创建自定义分享按钮的主要内容,如果未能解决你的问题,请参考以下文章

如何在 GraphQL 中创建自定义对象列表

如何在 QT5.6.1 中创建自定义按钮

在 IOS 中创建自定义 UITableView

如何在没有 SDK 或自定义应用程序 ID 的情况下创建 Facebook 分享按钮?

如何在 laravel 中创建自定义关系?

如何在 QML 中创建自定义对象?