我可以在 iOS 中自定义 Twitter 工具包的登录按钮吗?
Can I customize Login button of Twitter kit in iOS?
我已经下载了一个 Twitter 工具包框架并添加了使用 Twitter 登录的代码。但是,我不希望登录按钮看起来像那样。我想要一个用于登录的自定义按钮。我可以这样做吗?我只想使用这个框架,因为它也可以利用 iOS 系统帐户。
是的,您可以自定义您的 Twitter 登录按钮。
只需将您的 UIButton 添加到故事板所需的视图控制器中。 Select 它并打开身份检查器,现在在 Class 文本字段中,输入 "TWTRLogInButton" 之后创建一个 属性.
你将创建这样的东西:-
@property (nonatomic,strong) IBOutlet TWTRLogInButton *customTwitterButton;
之后您可以使用它或在您的 viewDidLoad
方法中实现它,如下所示:-
self.customTwitterButton = [TWTRLogInButton buttonWithLogInCompletion:^(TWTRSession *session, NSError *error) {
// do operations as per your wish
}];
根据 document :
在您的按钮中添加代码:
Objective-C
[[Twitter sharedInstance] logInWithCompletion:^
(TWTRSession *session, NSError *error) {
if (session) {
NSLog(@"signed in as %@", [session userName]);
} else {
NSLog(@"error: %@", [error localizedDescription]);
}
}];
Swift
Twitter.sharedInstance().logInWithCompletion {
(session, error) -> Void in
if (session != nil) {
println("signed in as \(session.userName)");
} else {
println("error: \(error.localizedDescription)");
}
}
Twitter 在文档中提供了单独的登录方法。在 xib 或故事板中创建您的自定义按钮,为其提供一个选择器并添加一个用于 Twitter 登录的方法。这是一个例子:
- (IBAction)btnTwitterLogin_pressed:(id)sender
{
[[Twitter sharedInstance] logInWithCompletion:^
(TWTRSession *session, NSError *error) {
if (session) {
NSLog(@"%@", [session userID]);
NSLog(@"%@", [session userName]);
NSLog(@"%@", [session authToken]);
NSLog(@"%@", [session authTokenSecret]);
} else {
NSLog(@"Error: %@", [error localizedDescription]);
}
}];
}
希望对其他人也有帮助。
在 Swift 4.2 和 Xcode 10.1
默认 Twitter 登录按钮代码
let twitterLoginButton = TWTRLogInButton(logInCompletion: { session, error in
if (session != nil) {
print("signed in as \(session!.userName)");
} else {
print("error: \(error!.localizedDescription)");
}
})
twitterLoginButton.frame = CGRect(x: 60, y: 100, width: 200, height: 40)
self.view.addSubview(twitterLoginButton)
普通登录按钮操作代码
@IBAction func onClickTwitterSignin(_ sender: UIButton) {
TWTRTwitter.sharedInstance().logIn { (session, error) in
if (session != nil) {
let name = session?.userName ?? ""
print(name)
print(session?.userID ?? "")
print(session?.authToken ?? "")
print(session?.authTokenSecret ?? "")
self.loadFollowers(session: session?.userID ?? "")
let client = TWTRAPIClient.withCurrentUser()
client.requestEmail { email, error in
if (email != nil) {
let recivedEmailID = email ?? ""
print(recivedEmailID)
} else {
print("error--: \(String(describing: error?.localizedDescription))");
}
}
let twitterClient = TWTRAPIClient(userID: session?.userID)
twitterClient.loadUser(withID: session?.userID ?? "") {(user, error) in
print(user?.profileImageURL ?? "")
print(user?.profileImageLargeURL ?? "")
print(user?.screenName ?? "")
}
let storyboard = self.storyboard?.instantiateViewController(withIdentifier: "SVC") as! SecondViewController
self.navigationController?.pushViewController(storyboard, animated: true)
} else {
print("error: \(String(describing: error?.localizedDescription))");
}
}
}
我已经下载了一个 Twitter 工具包框架并添加了使用 Twitter 登录的代码。但是,我不希望登录按钮看起来像那样。我想要一个用于登录的自定义按钮。我可以这样做吗?我只想使用这个框架,因为它也可以利用 iOS 系统帐户。
是的,您可以自定义您的 Twitter 登录按钮。
只需将您的 UIButton 添加到故事板所需的视图控制器中。 Select 它并打开身份检查器,现在在 Class 文本字段中,输入 "TWTRLogInButton" 之后创建一个 属性.
你将创建这样的东西:-
@property (nonatomic,strong) IBOutlet TWTRLogInButton *customTwitterButton;
之后您可以使用它或在您的 viewDidLoad
方法中实现它,如下所示:-
self.customTwitterButton = [TWTRLogInButton buttonWithLogInCompletion:^(TWTRSession *session, NSError *error) {
// do operations as per your wish
}];
根据 document :
在您的按钮中添加代码:
Objective-C
[[Twitter sharedInstance] logInWithCompletion:^
(TWTRSession *session, NSError *error) {
if (session) {
NSLog(@"signed in as %@", [session userName]);
} else {
NSLog(@"error: %@", [error localizedDescription]);
}
}];
Swift
Twitter.sharedInstance().logInWithCompletion {
(session, error) -> Void in
if (session != nil) {
println("signed in as \(session.userName)");
} else {
println("error: \(error.localizedDescription)");
}
}
Twitter 在文档中提供了单独的登录方法。在 xib 或故事板中创建您的自定义按钮,为其提供一个选择器并添加一个用于 Twitter 登录的方法。这是一个例子:
- (IBAction)btnTwitterLogin_pressed:(id)sender
{
[[Twitter sharedInstance] logInWithCompletion:^
(TWTRSession *session, NSError *error) {
if (session) {
NSLog(@"%@", [session userID]);
NSLog(@"%@", [session userName]);
NSLog(@"%@", [session authToken]);
NSLog(@"%@", [session authTokenSecret]);
} else {
NSLog(@"Error: %@", [error localizedDescription]);
}
}];
}
希望对其他人也有帮助。
在 Swift 4.2 和 Xcode 10.1
默认 Twitter 登录按钮代码
let twitterLoginButton = TWTRLogInButton(logInCompletion: { session, error in
if (session != nil) {
print("signed in as \(session!.userName)");
} else {
print("error: \(error!.localizedDescription)");
}
})
twitterLoginButton.frame = CGRect(x: 60, y: 100, width: 200, height: 40)
self.view.addSubview(twitterLoginButton)
普通登录按钮操作代码
@IBAction func onClickTwitterSignin(_ sender: UIButton) {
TWTRTwitter.sharedInstance().logIn { (session, error) in
if (session != nil) {
let name = session?.userName ?? ""
print(name)
print(session?.userID ?? "")
print(session?.authToken ?? "")
print(session?.authTokenSecret ?? "")
self.loadFollowers(session: session?.userID ?? "")
let client = TWTRAPIClient.withCurrentUser()
client.requestEmail { email, error in
if (email != nil) {
let recivedEmailID = email ?? ""
print(recivedEmailID)
} else {
print("error--: \(String(describing: error?.localizedDescription))");
}
}
let twitterClient = TWTRAPIClient(userID: session?.userID)
twitterClient.loadUser(withID: session?.userID ?? "") {(user, error) in
print(user?.profileImageURL ?? "")
print(user?.profileImageLargeURL ?? "")
print(user?.screenName ?? "")
}
let storyboard = self.storyboard?.instantiateViewController(withIdentifier: "SVC") as! SecondViewController
self.navigationController?.pushViewController(storyboard, animated: true)
} else {
print("error: \(String(describing: error?.localizedDescription))");
}
}
}