質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Facebook

Facebookは、実名登録制のSNS(ソーシャル・ネットワーキング・サービス)です。開発者用のデベロッパーサイトが存在し、一般ユーザーによるFacebook向けアプリケーション開発が可能です。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

998閲覧

Continue With Facebook

Udemy.seitaro

総合スコア11

Facebook

Facebookは、実名登録制のSNS(ソーシャル・ネットワーキング・サービス)です。開発者用のデベロッパーサイトが存在し、一般ユーザーによるFacebook向けアプリケーション開発が可能です。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2020/06/25 07:22

編集2020/06/25 08:37

こんにちは
いつも教えてくださる皆さまありがとうございます。
今後もよろしくお願い致します。
今回の質問なのですが、Facebookログインのアプリケーションを作成したのですが、ContinueWithFacebookというボタンがLabelが隠れてしまうのですが移動させる方法は何かあるのでしょうか。
よろしくお願い致します。

こちらです

ViewController

1import UIKit 2import FBSDKCoreKit 3import FBSDKLoginKit 4import FacebookCore 5import FacebookLogin 6import Firebase 7 8 9class ViewController: UIViewController,LoginButtonDelegate { 10 11 12 13 let fbLoginButton:FBLoginButton = FBLoginButton() 14 var displayName = String() 15 var pictureURL = String() 16 var pictureURLString = String() 17 18 19 override func viewDidLoad() { 20 super.viewDidLoad() 21 22 fbLoginButton.delegate = self 23 fbLoginButton.frame = CGRect(x: view.frame.size.width/2 - view.frame.size.width/4, y: view.frame.size.height/4 , width: view.frame.size.width/2, height: 30) 24 fbLoginButton.permissions = ["public_profile,email"] 25 view.addSubview(fbLoginButton) 26 27 28 } 29 30 31 override func viewWillAppear(_ animated: Bool) { 32 super.viewWillAppear(animated) 33 34 navigationController?.isNavigationBarHidden = true 35 36 } 37 38 39 40 41 func loginButton(_ loginButton: FBLoginButton, didCompleteWith result: LoginManagerLoginResult?, error: Error?) { 42 43 if error == nil{ 44 45 if result?.isCancelled == true{ 46 47 return 48 } 49 50 } 51 52 53 let credential = FacebookAuthProvider.credential(withAccessToken: AccessToken.current!.tokenString) 54 Auth.auth().signIn(with: credential) { (result, error) in 55 56 if let error = error{ 57 58 return 59 60 } 61 62 self.displayName = result!.user.displayName! 63 self.pictureURLString = result!.user.photoURL!.absoluteString 64 self.pictureURLString = self.pictureURLString + "?type=large" 65 UserDefaults.standard.set(1, forKey: "loginOK") 66 UserDefaults.standard.set(self.displayName, forKey: "displayName") 67 UserDefaults.standard.set(self.pictureURLString, forKey: "pictureURLString") 68 69 let nextVC = self.storyboard?.instantiateViewController(identifier: "next") as! NextViewController 70 71 self.navigationController?.pushViewController(nextVC, animated: true) 72 73 74 } 75 76 77 78 } 79 80 81 func loginButtonWillLogin(_ loginButton: FBLoginButton) -> Bool { 82 83 return true 84 85 } 86 87 88 89 func loginButtonDidLogOut(_ loginButton: FBLoginButton) { 90 print("ログアウトしました!") 91 } 92 93 94} 95 96

NextViewController

1import UIKit 2import SDWebImage 3 4class NextViewController: UIViewController { 5 6 @IBOutlet weak var profileImageView: UIImageView! 7 8 9 @IBOutlet weak var userNameLabel: UILabel! 10 11 override func viewDidLoad() { 12 super.viewDidLoad() 13 14 if UserDefaults.standard.object(forKey: "pictureURLString") != nil || (UserDefaults.standard.object(forKey: "displayName") != nil){ 15 16 let imageString = UserDefaults.standard.object(forKey: "pictureURLString") as! String 17 18 profileImageView.sd_setImage(with: URL(string: imageString), completed: nil) 19 20 profileImageView.layer.cornerRadius = 20.0 21 22 let displayName = UserDefaults.standard.object(forKey: "displayName") as! String 23 24 userNameLabel.text = displayName 25 26 27 } 28 29 30 // Do any additional setup after loading the view. 31 } 32 33 34 override func viewWillAppear(_ animated: Bool) { 35 super.viewWillAppear(animated) 36 37 navigationController?.isNavigationBarHidden = true 38 39 } 40 41 /* 42 // MARK: - Navigation 43 44 // In a storyboard-based application, you will often want to do a little preparation before navigation 45 override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 46 // Get the new view controller using segue.destination. 47 // Pass the selected object to the new view controller. 48 } 49 */ 50 51} 52

Simulator

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

TsukubaDepot

2020/06/25 08:00

どのようなソースコードを書かれたのか、StoryBoard上で作業をしているのであれば、どのようにデザインされたのか、あるいは何かのフレームワーク(ライブラリ)をつかわれたのであれば何を使ったのか詳しく書いていただかないと判断することができません。 具体的にどのような作業を行ったのか、また想定した結果はどのような結果なのかを合わせて書いていただけないでしょうか(Facebookログインはやったことがないので、私が回答できるか分かりませんが)。
Udemy.seitaro

2020/06/25 08:30

TsukudaDepod様 お世話になります。 毎度回答していただいて本当にありがとうございます。 code追加したのでご確認いただけますでしょうか。 よろしくお願い致します
TsukubaDepot

2020/06/25 08:32

追記ありがとうございます。 あと、 > ContinueWithFacebookというボタンがLabelが隠れてしまうのですが移動させる方法は何かあるのでしょうか。 隠れてしまう、というのはどのような状態になっていることを表現しているのでしょうか。 予想した結果と実際の結果の違いがわからないので、その点についても追記していただければと思います。 (もし何かを参考にしたのであればそのURLもあれば良いかと思います)
Udemy.seitaro

2020/06/25 08:39

TsukudaDepod様 写真の方追加させていただきました。 このFacebookで続けるという部分がLabelと被ってしまっているので移動させたいという事になります。 お手数ですがよろしくお願い致します。
TsukubaDepot

2020/06/25 08:45

Signinというラベルや背景は Storyboard 上で作ったものでしょうか。 そうであれば、ラベルの位置をずらすか、あるいは fbLoginButton.frame = CGRect(x: view.frame.size.width/2 - view.frame.size.width/4, y: view.frame.size.height/4 , width: view.frame.size.width/2, height: 30) という行の y 座標(今はview.frame.size.height/4となっているので、それをずらす)と解決しそうですが、いかがでしょうか。
Udemy.seitaro

2020/06/25 09:02

TsukudaDepod様 ご回答ありがとうございます。 fbLoginButtonを下にそのまま動かしたいのですが、その方法がわからないのですが教えていただけますでしょうか。 自分の知識不足でご迷惑をおかけして申し訳ございませんがよろしくお願い致します
Udemy.seitaro

2020/06/25 10:29

TsukudaDepod様 お世話になります。 https://iphone-tora.sakura.ne.jp/uikit_size.html こちらを参考に自分なりに直してみたのですがfbLoginButtonが下がるどころか上がってしまいました。 何か修正点はあるのでしょうか。 お手数ですがよろしくお願い致します fbLoginButton.frame = CGRect(x: view.frame.size.width/2 - view.frame.size.width/4, y: view.frame.size.height/40 , width: view.frame.size.width/2, height: 30)
TsukubaDepot

2020/06/25 10:47

変更すべき点は間違っていないのですが、与える値が適切出ないのだと思います。 回答に追記しましたので、あわせてご覧ください。
guest

回答1

0

ベストアンサー

Swift

1fbLoginButton.frame = CGRect(x: view.frame.size.width/2 - view.frame.size.width/4, y: view.frame.size.height/4 , width: view.frame.size.width/2, height: 30)

ここで使われている CGRectというメソッドは、x, yで指定した座標を原点に、幅width, 高さheightの矩形のエリアを指定するメソッドです。

ラベルを画面下方にずらしたいのであれば、y座標方向に移動することになりますから、移動したい座標分だけ y 軸を加算すれば良いということになります。

現在だと画面の上1/4の部分(view.frame.size.height/4)に表示されていると思います。

たとえば20ピクセル移動するのであれば単純に

Swift

1fbLoginButton.frame = CGRect(x: view.frame.size.width/2 - view.frame.size.width/4, y: view.frame.size.height/4 + 20, width: view.frame.size.width/2, height: 30)

となりますし、画面のど真ん中に表示するのであれば

Swift

1fbLoginButton.frame = CGRect(x: view.frame.size.width/2 - view.frame.size.width/4, y: view.frame.size.height/2 , width: view.frame.size.width/2, height: 30)

という具合に指定してみてください。


コメントを受けて追記

Swift

1fbLoginButton.frame = CGRect(x: view.frame.size.width/2 - view.frame.size.width/4, 2y: view.frame.size.height/40 , width: view.frame.size.width/2, height: 30)

修正すべき点は間違っていないのですが、修正方法が想定と違っているようです。

view.frame.size.height/40

は、ビューの高さを40分の1にした大きさ(長さ)に等しくなります。

投稿2020/06/25 10:38

編集2020/06/25 10:46
TsukubaDepot

総合スコア5086

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Udemy.seitaro

2020/06/25 12:39

TsukudaDepod様 御丁寧に返信有り難うございます。 あまりにも丁寧に教えていただき心から感謝しています。 とてもわかりやすくx.yの関係性がわかりました。 ありがとうございました。 今後もよろしくお願い致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問