我成功地为web定制了登录按钮,但我怎么能为iOS做到这一点?我一直在寻找,一直没能找到任何东西。自定义手机Facebook登录按钮?
我目前使用的是Facebook SDK 3.0,实现起来相当容易,但FBLoginView按钮的设计像拇指一样突出。我正在试图用一个动画按钮来掩盖它,并向前触摸它背后的真实Facebook按钮。
Apple会在提交时拒绝这种解决方法吗? 必须有一个更简单的方法,不是吗?
我成功地为web定制了登录按钮,但我怎么能为iOS做到这一点?我一直在寻找,一直没能找到任何东西。自定义手机Facebook登录按钮?
我目前使用的是Facebook SDK 3.0,实现起来相当容易,但FBLoginView按钮的设计像拇指一样突出。我正在试图用一个动画按钮来掩盖它,并向前触摸它背后的真实Facebook按钮。
Apple会在提交时拒绝这种解决方法吗? 必须有一个更简单的方法,不是吗?
Possible Duplicate of "How to customize FBLoginVIew?" check both Question & Answer
目前还没有报道,Facebook的登录查看定制排斥的问题,按我的知识
是的,你可以通过下面的代码更改。
for (id obj in loginview.subviews)
{
if ([obj isKindOfClass:[UIButton class]])
{
UIButton * loginButton = obj;
[loginButton setBackgroundColor:[UIColor blueColor]];
UIImage *loginImage = [UIImage imageNamed:@"facebook_btn~ipad.png"];
[loginButton setBackgroundImage:loginImage forState:UIControlStateNormal];
[loginButton setBackgroundImage:nil forState:UIControlStateSelected];
[loginButton setBackgroundImage:nil forState:UIControlStateHighlighted];
[loginButton sizeToFit];
}
if ([obj isKindOfClass:[UILabel class]])
{
UILabel * loginLabel = obj;
loginLabel.text = @"Login with facebook";
loginLabel.textAlignment = NSTextAlignmentCenter;
loginLabel.frame = CGRectMake(0, 30, 600, 30);
//loginLabel.text. = [UIFont fontWithName:@"Default" size:30.0];
[loginLabel setFont:[UIFont boldSystemFontOfSize:27]];
}
}
请阅读Facebook SDK中的README文件。 您必须在info.plist中添加Row - FacebookBundleName并将其命名为您的包。 然后,使用此名称将项目包添加到项目中,并放入名为“lang.lproj”的文件夹中: 例如:en.lproj - it.lproj - fr.lproj - es.lproj .... 将此文件夹您必须添加Localizable.strings文件,然后您可以本地化很多短语,如:
"FBLV:LogOutButton" = "Log Out";
"FBLV:LogInButton" = "Log In";
"FBLV:LoggedInAs" = "Logged in as: %@";
"FBLV:LoggedInUsingFacebook" = "Logged in using Facebook";
"FBLV:LogOutAction" = "Log Out";
"FBLV:CancelAction" = "Cancel";
希望它可以帮助您!
//Add the normal button then add your own image and tittle and give the action the button and use the below code in the button action.
NSMutableDictionary *fbResultData;
FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
[login
logInWithReadPermissions: @[@"public_profile", @"email", @"user_friends"]
fromViewController:self
handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
if (error) {
NSLog(@"Process error");
} else if (result.isCancelled) {
NSLog(@"Cancelled");
} else {
NSLog(@"Logged in");
if ([FBSDKAccessToken currentAccessToken])
{
[[[FBSDKGraphRequest alloc] initWithGraphPath:@"me?fields=id,name,age_range,birthday,devices,email,gender,last_name,family,friends,location,picture" parameters:nil]
startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
if (!error) {
NSString * accessToken = [[FBSDKAccessToken currentAccessToken] tokenString];
NSLog(@"fetched user:%@ ,%@", result,accessToken);
fbResultData =[[NSMutableDictionary alloc]init];
if ([result objectForKey:@"email"]) {
[fbResultData setObject:[result objectForKey:@"email"] forKey:@"email"];
}
if ([result objectForKey:@"gender"]) {
[fbResultData setObject:[result objectForKey:@"gender"] forKey:@"gender"];
}
if ([result objectForKey:@"name"]) {
NSArray *arrName;
arrName=[[result objectForKey:@"name"] componentsSeparatedByString:@" "];
[fbResultData setObject:[arrName objectAtIndex:0] forKey:@"name"];
}
if ([result objectForKey:@"last_name"]) {
[fbResultData setObject:[result objectForKey:@"last_name"] forKey:@"last_name"];
}
if ([result objectForKey:@"id"]) {
[fbResultData setObject:[result objectForKey:@"id"] forKey:@"id"];
}
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
initWithGraphPath:[NSString stringWithFormat:@"me/picture?type=large&redirect=false"]
parameters:nil
HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
id result,
NSError *error) {
if (!error){
if ([[result objectForKey:@"data"] objectForKey:@"url"]) {
[fbResultData setObject:[[result objectForKey:@"data"] objectForKey:@"url"] forKey:@"picture"];
}
//You get all detail here in fbResultData
NSLog(@"Final data of FB login********%@",fbResultData);
self.fullNameTextField.text = [fbResultData objectForKey:@"name"];
self.lastNameTextField.text = [fbResultData objectForKey:@"last_name"];
[_customFaceBookButton setImage:[UIImage imageNamed:@"fb_connected"] forState:UIControlStateNormal];
} }];
}
else {
NSLog(@"result: %@",[error description]);
AlertView *alert = [[AlertView alloc] initWithTitle:NSLocalizedString(@"Error", nil) message:[error description] delegate:nil cancelButtonTitle:NSLocalizedString(@"DISMISS", nil) otherButtonTitle:nil];
[alert showInView:self.view.window];
}
}];
}
else{
[[FBSDKLoginManager new] logOut];
[_customFaceBookButton setImage:[UIImage imageNamed:@"fb_connected"] forState:UIControlStateNormal];
}
}
}];
希望它有一个帮助 –
添加正常的按钮,然后添加您自己的图像和标题给你的按钮,并将行动给按钮,并在按钮操作中使用下面的代码 –
我想这真的是一个重复,这是非常相同的,它的工作!我应该专注于FBLoginView的搜索,我可能会找到我的答案。谢谢! – KidIcarus271