2016-10-07 10 views
1

Я хотел бы разместить фоновое изображение за тремя кнопками входа (для Google, Facebook и электронной почты) экрана входа в FirebaseUI. FirebaseUI - это решение для аутентификации для iOS, Android и Web. У меня проблемы с iOS.Как добавить фоновое изображение для FirebaseUI для iOS?

Есть немного совета на Github, но этого недостаточно.

Я сначала инициализирую свой var customAuthPickerViewController : FIRAuthPickerViewController! в верхней части файла ViewController.swift.

Тогда это функция в моем файле ViewController.swift, но она не работает. Когда я нажимаю кнопку выхода из системы, приложение падает, и фоновое изображение никогда не отображается.

// Customize the sign-in screen to have the Bizzy Books icon/background image 

func authPickerViewController(for authUI: FIRAuthUI) -> FIRAuthPickerViewController { 

    customAuthPickerViewController = authPickerViewController(for: authUI) 
    backgroundImage = UIImageView(image: UIImage(named: "bizzybooksbee")) 
    backgroundImage.contentMode = UIViewContentMode.scaleAspectFill 
    customAuthPickerViewController.view.addSubview(backgroundImage) 

    return customAuthPickerViewController 
} 

фоновое изображение «bizzybooksbee» является универсальным изображение Набор 1x, 2x и 3x изображений уже загруженных в моей папке Assets.xcassets.

Это a picture of what the login screen looks like, не пытаясь реализовать фоновое изображение.

enter image description here

UPDATE: Я могу получить изображение, чтобы показать, с кодом, я дал в комментариях ниже, но это показывает OVER знак-в кнопки, как показано ниже рис.

enter image description here

Вот образ "иерархией", с помощью Джеффри:

enter image description here

+0

Я успешно добавил изображение, но изображение теперь поверх кнопок, так что теперь мой вопрос: как мне получить изображение за кнопками. –

+0

Что я сделал, чтобы получить изображение для показа, подробно описано в моем уточненном запросе [здесь] (https://thenewboston.com/forum/topic.php?id=12907). Вместо того, чтобы иметь func authPickerViewController, я просто добавил следующие строки к моей функции login() перед представлением authViewController: –

+0

'let width = UIScreen.main.bounds.size.width let height = UIScreen.main.bounds.size .height let imageViewBackground = UIImageView (рамка: CGRect (x: 0, y: 0, ширина: ширина, высота: высота)) imageViewBackground.Изображение = UIImage (назван: "bizzybooksbee") // Вы можете изменить режим содержания: imageViewBackground.contentMode = UIViewContentMode.scaleAspectFill authViewController .view.insertSubview (imageViewBackground, по адресу: 1)? ' –

ответ

2

Вот решение!

Удалите мусор, который не работает с ViewController.swift:

func authPickerViewController(for authUI: FIRAuthUI) -> FIRAuthPickerViewController { 

    customAuthPickerViewController = authPickerViewController(for: authUI) 
    backgroundImage = UIImageView(image: UIImage(named: "bizzybooksbee")) 
    backgroundImage.contentMode = UIViewContentMode.scaleAspectFill 
    customAuthPickerViewController.view.addSubview(backgroundImage) 

    return customAuthPickerViewController 
} 

Создать .swift «подкласс» из FIRAuthPickerViewController, что вы можете назвать что-нибудь, и добавить фоновое изображение/настройка есть:

import UIKit 
import FirebaseAuthUI 

class BizzyAuthViewController: FIRAuthPickerViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     // Do any additional setup after loading the view. 

     let width = UIScreen.main.bounds.size.width 
     let height = UIScreen.main.bounds.size.height 

     let imageViewBackground = UIImageView(frame: CGRect(x: 0, y: 0, width: width, height: height)) 
     imageViewBackground.image = UIImage(named: "bizzybooksbee") 

     // you can change the content mode: 
     imageViewBackground.contentMode = UIViewContentMode.scaleAspectFill 

     view.insertSubview(imageViewBackground, at: 0) 
    }} 

в ваших ViewController.swift (или что вы его называете), в той части, где вы войдите, изменить authViewController равной свой новый подкласс, добавьте строку для навигации контроллера, и передать его в self.present:

let authViewController = BizzyAuthViewController(authUI: authUI!) 

let navc = UINavigationController(rootViewController: authViewController) 

self.present(navc, animated: true, completion: nil) 

Я также сделал YouTube tutorial, в котором показано, как это сделать в глубину.

+0

Вы случайно знаете, как изменить фоновое изображение экрана электронной почты? Он использует UITableView, поэтому просто изменить фоновое изображение недостаточно. –

+0

Я думаю, что экран электронной почты может быть немного сложнее сделать. Я бы зарегистрировался на веб-сайте наставника кода. –

+0

@Brad Caldwell Привет, я вижу, что вы решили проблему, сходную/дополняющую мою, можете ли вы взглянуть на нее и сказать, видите ли вы, что случилось? Спасибо! – Alex9494