我可以在 iOS 中自定义 Twitter 工具包的登录按钮吗?
Posted
技术标签:
【中文标题】我可以在 iOS 中自定义 Twitter 工具包的登录按钮吗?【英文标题】:Can I customize Login button of Twitter kit in iOS? 【发布时间】:2015-07-29 20:54:57 【问题描述】:我已经下载了一个 Twitter 工具包框架并添加了使用 Twitter 登录的代码。但是,我不希望登录按钮看起来像那样。我想要一个用于登录的自定义按钮。我可以这样做吗?我只想使用这个框架,因为它也适用于 ios 系统帐户。
【问题讨论】:
【参考方案1】:根据document:
在按钮中添加代码:
目标-C
[[Twitter sharedInstance] logInWithCompletion:^
(TWTRSession *session, NSError *error)
if (session)
NSLog(@"signed in as %@", [session userName]);
else
NSLog(@"error: %@", [error localizedDescription]);
];
斯威夫特
Twitter.sharedInstance().logInWithCompletion
(session, error) -> Void in
if (session != nil)
println("signed in as \(session.userName)");
else
println("error: \(error.localizedDescription)");
【讨论】:
我还添加了对我的问题的异步回答,以及您的回答。你仍然值得投票和接受。 @Pratik[[Twitter sharedInstance] logOut];
已经试过了,但是下一次,当我按下登录按钮时,它不会要求凭据!直接我得到会话。
哦!可能你必须向 Twitter 社区 iOS 提问。 @Pratik
谁能给我推特登录的步骤。我试了很多次,但我做不到请帮帮我。【参考方案2】:
是的,您可以自定义您的 Twitter 登录按钮。
只需将 UIButton 添加到情节提要所需的视图控制器中。选择它并打开身份检查器,现在在 Class 文本字段中,在创建属性后输入“TWTRLogInButton”。
您将创建如下内容:-
@property (nonatomic,strong) IBOutlet TWTRLogInButton *customTwitterButton;
之后,您可以使用它或在您的 viewDidLoad
方法中实现它,如下所示:-
self.customTwitterButton = [TWTRLogInButton buttonWithLogInCompletion:^(TWTRSession *session, NSError *error)
// do operations as per your wish
];
【讨论】:
在我的情况下不会发生这种情况。无论如何,很高兴看到你自己找到了方法。 这应该不起作用,因为+buttonWithLogInCompletion:
创建了一个新的按钮实例,所以你覆盖了 IBOutlet self.customTwitterButton
。【参考方案3】:
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]);
];
希望它也对其他人有所帮助。
【讨论】:
如何在不使用应用程序的情况下通过网络登录 twitter。【参考方案4】:在 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))");
【讨论】:
以上是关于我可以在 iOS 中自定义 Twitter 工具包的登录按钮吗?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Quickblox 在 Chat ViewController 中自定义或使用我自己的 nib 作为工具栏?