gpt4 book ai didi

facebook - 如何更改 FBSDKLoginButton iOS 8.3/Swift 1.2 的默认设计?

转载 作者:搜寻专家 更新时间:2023-10-31 21:50:31 24 4
gpt4 key购买 nike

我目前正在开发 App,我需要更改 Facebook SDK 提供的 Facebook 按钮的默认设计。我成功地让提供的按钮透明并将其粘贴在设计 View 上方,并且效果很好(现在设计匹配并且 Facebook SDK 按钮的功能运行良好)。在我这样做之后我的问题出现了,因为按钮失去了它的 Ui 效果(点击时没有突出显示)。如果有人可以帮助我,我需要为这个设计的按钮添加突出显示效果。让我们澄清一下:我将 UIView 设计为按钮,我在它上面放了一个透明的 Facebook SDK 按钮,结果是我的设计形状和 Facebook 按钮的功能同时存在,损失:点击时没有突出显示效果。

最佳答案

我尝试了以下代码,它以正确的方式提供了功能。但是我未能在单击按钮时为按钮提供突出显示效果。这是代码:

{
if (FBSDKAccessToken.currentAccessToken() != nil)
{
// if user logged in then handleTap func will run instead of button functionality
let tap = UITapGestureRecognizer(target: self, action: "handleTap:")
self.btnSignUpwithFaceBook.addGestureRecognizer(tap)

}

else
{
let loginView : FBSDKLoginButton = FBSDKLoginButton()
self.view.addSubview(loginView)
loginView.center = self.btnSignUpwithFaceBook.center
loginView.frame.size.width = self.btnSignUpwithFaceBook.frame.width
loginView.frame.size.height = self.btnSignUpwithFaceBook.frame.height
loginView.frame.origin.x = self.btnSignUpwithFaceBook.frame.origin.x
loginView.frame.origin.y = self.btnSignUpwithFaceBook.frame.origin.y

for subView in loginView.subviews
{
subView.removeFromSuperview()
}
loginView.layer.shadowColor = UIColor.clearColor().CGColor

loginView.setBackgroundImage(nil, forState: UIControlState.Normal)
loginView.setBackgroundImage(nil, forState: UIControlState.Application)
loginView.setBackgroundImage(nil, forState: UIControlState.allZeros)
loginView.setBackgroundImage(nil, forState: UIControlState.Highlighted)
loginView.setBackgroundImage(nil, forState: UIControlState.Reserved)
loginView.setBackgroundImage(nil, forState: UIControlState.Selected)

loginView.setImage(nil, forState: UIControlState.Normal)
loginView.setImage(nil, forState: UIControlState.Application)
loginView.setImage(nil, forState: UIControlState.allZeros)
loginView.setImage(nil, forState: UIControlState.Highlighted)
loginView.setImage(nil, forState: UIControlState.Reserved)
loginView.setImage(nil, forState: UIControlState.Selected)

loginView.backgroundColor = UIColor.clearColor()
// just for test
self.btnSignUpwithFaceBook.layer.borderWidth = 1
self.btnSignUpwithFaceBook.layer.borderColor = UIColor.whiteColor().CGColor
loginView.layer.backgroundColor = UIColor.clearColor().CGColor

loginView.readPermissions = ["public_profile", "email", "user_friends"]
loginView.delegate = self
loginView.setTranslatesAutoresizingMaskIntoConstraints(false)

var constX = NSLayoutConstraint(item: loginView, attribute: NSLayoutAttribute.CenterX, relatedBy: NSLayoutRelation.Equal, toItem: self.btnSignUpwithFaceBook, attribute: NSLayoutAttribute.CenterX, multiplier: 1, constant: 0)
view.addConstraint(constX)

var constY = NSLayoutConstraint(item: loginView, attribute: NSLayoutAttribute.CenterY, relatedBy: NSLayoutRelation.Equal, toItem: self.btnSignUpwithFaceBook, attribute: NSLayoutAttribute.CenterY, multiplier: 1, constant: 0)
view.addConstraint(constY)

let views = ["loginView": loginView]

var constH = NSLayoutConstraint.constraintsWithVisualFormat("H:[loginView(57)]", options: NSLayoutFormatOptions(0), metrics: nil, views: views)
view.addConstraints(constH)


var constW = NSLayoutConstraint.constraintsWithVisualFormat("V:[loginView(281)]", options: NSLayoutFormatOptions(0), metrics: nil, views: views)

view.addConstraints(constW)

}

实际上主要问题是 facebookLogInButton 是 FBSDK 的自定义类,swift 不将其视为 uiButton,这就是为什么没有突出显示属性出现的原因。因此,我的目的是让你们的帮助人员找到它,目的是找到一种方法,让 facebookLoginButton 在 swift 中被视为 uiButton。

关于facebook - 如何更改 FBSDKLoginButton iOS 8.3/Swift 1.2 的默认设计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31453608/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com