Search code examples
objective-ciosfacebookfacebook-loginfacebook-ios-sdk

How to customize FBLoginVIew?


In order to connect to facebook in my ios app i'm using FBLoginVIew from Facebook SDK for iOS.

It shows a nice FB Login Button, but I want to use my own image and text for the login button. The problem is that I don't see anywhere how to customize that.

I've managed to change the login button background image by overriding the images in FacebookSDKResources.bundle/FBLoginView/images, but I couldn't find where to change the login button text and position, so it's stays "Log in"...

Solution, anyone?

Thank you


Solution

  • The answer is to go over the FBLoginView subviews, find the button and the label and customize them.

    Here is the code:

    FBLoginView *loginview = 
    [[FBLoginView alloc] initWithPermissions:[NSArray arrayWithObject:@"publish_actions"]];
    
    
    loginview.frame = CGRectMake(4, 95, 271, 37);
    for (id obj in loginview.subviews)
            {
                if ([obj isKindOfClass:[UIButton class]])
                {
                    UIButton * loginButton =  obj;
                    UIImage *loginImage = [UIImage imageNamed:@"YourImg.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 = @"Log in to facebook";
                    loginLabel.textAlignment = UITextAlignmentCenter;
                    loginLabel.frame = CGRectMake(0, 0, 271, 37);
                }
            }
    
    loginview.delegate = self;
    
    [self.view addSubview:loginview];