1. ホーム
  2. objective-c

[解決済み] FBLoginVIewをカスタマイズするには?

2022-02-20 09:30:06

質問

私のiosアプリでfacebookに接続するために、以下のFBLoginVIewを使用しています。 Facebook SDK for iOS .

素敵なFBログインボタンが表示されますが、ログインボタンに独自の画像とテキストを使いたいのですが、どうすればいいですか? 問題は、それをカスタマイズする方法がどこにも見当たらないことです。

ログインボタンの背景画像はFacebookSDKResources.bundle/FBLoginView/imagesの画像をオーバーライドしてなんとか変更できましたが、ログインボタンのテキストと位置を変更する場所が見つからず、"Log in" のままになっています......。

どなたか解決策を教えてください。

ありがとうございました

解決方法は?

答えは、FBLoginViewのサブビューを調べ、ボタンとラベルを見つけ、それらをカスタマイズすることです。

以下はそのコードです。

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];