[英]Custom Facebook button inside Stack View
我正在創建一個登錄頁面,我想要一個 Facebook 登錄按鈕。 我有一個堆棧視圖,我想要按鈕所在的位置。 如何將按鈕插入堆棧視圖並將按鈕自定義為setUpElements()
? 我目前有一個普通的 UIButton,我希望 facebook 按鈕位於其中,設計為我希望 FBButton 的設計方式。 它現在只是 FBButton 的占位符。 幾乎,我只想根據setUpElements()
的規范自定義 facebook 按鈕,並將其放置在堆棧視圖中(在“注冊 Apple 按鈕”下)。我附上了堆棧視圖設計的屏幕截圖,謝謝任何幫助!
import UIKit
import FirebaseAuth
import FBSDKLoginKit
class WelcomeViewController: UIViewController {
@IBOutlet weak var stackView: UIStackView!
@IBOutlet weak var signInAppleButton: UIButton!
@IBOutlet weak var signInFacebookButton: UIButton!
let facebookLoginButton = FBLoginButton()
override func viewDidLoad() {
super.viewDidLoad()
setUpElements()
}
func setUpElements() {
let button = signInFacebookButton
button?.layer.borderWidth = 2
button?.layer.borderColor = UIColor.init(red: 93/255, green: 129/255, blue: 140/255, alpha: 1).cgColor
button?.layer.cornerRadius = 20.0
button?.tintColor = UIColor.black
}
}
如果你想以編程方式向 UIStackView 添加按鈕或視圖,你需要使用這個 function stackView.insertArrangedSubview(button, at: 3)
編輯
你可以創建一個 function ,你想要 facebook 登錄實現是這樣的:
@objc func facebookLoginButtonAction() {
let loginManager = LoginManager()
loginManager.logIn(permissions: [], from: self) { (result, error) in
// Check for error
guard error == nil else {
// Error occurred
print(error!.localizedDescription)
return
}
// Check for cancel
guard let result = result, !result.isCancelled else {
print("User cancelled login")
return
}
// Successfully logged in
// do your business logic code here...
// in case if you would like to load user facebook profile
Profile.loadCurrentProfile { (profile, error) in
// update UI ...
}
}
}
然后將此 function 作為目標操作添加到自定義按鈕讓我們假設您想要使用signInFacebookbutton
您可以將以下代碼放在viewDidLoad
或setUpElements()
中:
signInFacebookbutton.addTarget(self, action: #selector(facebookLoginButtonAction), for: .touchUpInside)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.