在iOS中的子视图中放置Facebook SDK按钮

时间:2016-05-16 19:43:08

标签: ios objective-c iphone facebook facebook-ios-sdk

我想在我的主视图的子视图中放置一个Facebook共享按钮(可能是一个类似的按钮或发送按钮),这个按钮显示在屏幕的底部四分之一处。子视图看起来很好,并且足以容纳按钮 - 请参阅下面屏幕截图中的红色部分。但由于某种原因,按钮出现在屏幕的左上角,偏移-70,-452。就好像按钮处理代码决定在左上角渲染按钮而不管渲染的位置。

关于如何将其移至我需要的地方的任何想法?

这是我用来调出按钮的代码:

 FBSDKSharePhotoContent *content = [[FBSDKSharePhotoContent alloc] init];
 content.photos = @[photo];
 content.contentURL = [NSURL URLWithString:@"xxx"];

 FBSDKShareButton *button = [[FBSDKShareButton alloc] init];
 button.shareContent = content;

 [self.shareContainer addSubview:button];

Screenshot

2 个答案:

答案 0 :(得分:1)

你应该尝试这个按钮.center = self.shareContainer.center。
您基本上试图将按钮的中心设置为其容器的中心。

答案 1 :(得分:0)

我发现了这个问题。我的Facebook代码在<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> </head> <body> <div class="btn btn-xs" id="btn1"><i class="glyphicon glyphicon-play"></i></div> <div class="btn btn-xs" id="btn2"><i class="glyphicon glyphicon-play"></i></div> <div class="btn btn-xs" id="btn3"><i class="glyphicon glyphicon-play"></i></div> <!-- SOUNDS --> <audio id="sound1"> <source src="http://www.internetdj.com/mp3/108215.mp3" type="audio/mpeg" /> </audio> <audio id="sound2"> <source src="http://www.bigsoundbank.com/sounds/ogg/0580.ogg" type="audio/ogg" /> </audio> <audio id="sound3"> <source src="http://www.bigsoundbank.com/sounds/ogg/0003.ogg" type="audio/ogg" /> </audio> </body> <script src="js/jquery-2.1.4.min.js"></script> <script src="js/bootstrap.min.js"></script> <link href="css/bootstrap.css" rel="stylesheet" /> <script type="text/javascript"> $('.btn').click(function () { var $this = $(this); var id = $this.attr('id').replace(/btn/, ''); var play = '<div class="btn btn-xs"><i class="glyphicon glyphicon-play"></i></div>'; var pause = '<div class="btn btn-xs"><i class="glyphicon glyphicon-pause"></i></div>'; $this.toggleClass('active'); if ($this.hasClass('active')) { $this.html(pause); $('audio[id^="sound"]')[id - 1].play(); } else { $this.html(play); $('audio[id^="sound"]')[id - 1].pause(); $('audio[id^="sound"]')[id - 1].pause(); } }); </script> </html> - 这意味着在执行它时autolayout没有生效,并且容器视图没有在屏幕上找到它的位置。解决方案是将相同的代码放在viewDidLayoutSubviews中。