Подтвердить что ты не робот

Невозможно изменить пользовательский класс UIButton для GIDSignInButton

Я пытаюсь добавить функцию входа в Google в пользовательскую кнопку и следую этому уроку. Он говорит мне выбрать кнопку и установить ее класс как GIDSignInButton, а затем добавить этот код: @IBOutlet weak var signInButton: GIDSignInButton! ,

Тем не менее, это не позволяет мне установить класс GIDSignInButton. Когда я набираю его и нажимаю ввод, поле просто очищается.

enter image description here

4b9b3361

Ответ 1

Обходной путь открыт storyboard в текстовом режиме и поместить его напрямую. Когда вы вернетесь к interface builder, он будет нормально отображаться.

Ответ 2

Вам следует попытаться назначить GIDSignInButton не объекту Button из библиотеки объектов, а вместо этого вместо объекта просмотра

Это работает для меня.

Ответ 3

Вы можете создать UIButton, а затем по его методу действия вы можете написать этот код для подписи через Google:

    GIDSignIn.sharedInstance().signIn()

Это работает для меня, таким образом, вы можете настроить UIButton в соответствии с вашими требованиями, а также выполнить вход с помощью Google

Ответ 4

Это потому, что GIDSignInButton является подклассом UIView, а не UIButton. Добавьте к раскадровке /nib обычный UIView и измените его класс на GIDSignInButton.

Из Google Doc:

Добавьте GIDSignInButton в раскадровку, файл XIB или создайте его экземпляр программным способом. Чтобы добавить кнопку в вашу раскадровку или файл XIB, добавьте View и установите для его пользовательского класса значение GIDSignInButton.

Ответ 5

  1. Откройте раскадровку как исходный код.
  2. Найдите кнопку в XML.
  3. Установите customclass= "GIDSignInButton" в качестве атрибута для тега кнопки.
  4. Откройте раскадровку как конструктор интерфейса.

Теперь вы можете связать кнопку с IBOutlet

Ответ 6

У меня была та же проблема несколько месяцев назад,

Ваш код кажется правильным

@IBOutlet weak var signInButton: GIDSignInButton!

Но проблема может быть

• Вы не добавили Framework должным образом (Перейдите в настройку вашего проекта в навигаторе слева и нажмите "Построить фазы", ​​добавьте фреймворк и SHIFT + CMD + K)

• Или, наоборот, продолжайте писать @IBOutlet в вашем быстром файле, затем перетащите кнопку, чтобы назначить ее

• ваш последний вариант - закрыть xcode или, возможно, удалить производные данные

Сам Xcode имеет множество ошибок, я не уверен, что его проблема, его xcodes

Надеюсь, это поможет!

Ответ 7

Если вы используете UIView вместо UIButton, вы можете назначить представлению собственный класс GIDSignInButton. Оттуда вы можете подключить вид к розетке кнопки и действия, как показано ниже.

@IBOutlet weak var googleLoginButton: GIDSignInButton!

  @IBAction func googleLoginButtonPressed(_ sender: Any) {
    GIDSignIn.sharedInstance()?.signIn()
}

Ответ 8

GIDSignInButton может быть установлен с помощью UIView или UIButton.

Если вы используете GIDSignInButton в качестве UIButton

  1. откройте раскадровку как исходный код
  2. Найти кнопку в полученном XML
  3. Добавьте приведенный ниже код в качестве атрибута для тега кнопки

    customclass= "GIDSignInButton"

4. снова откройте раскадровку как Интерфейсный Разработчик, класс кнопки будет изменен

Если вы используете GIDSignInButton в качестве UIView

1. скопируйте пользовательский класс как GIDSignInButton в Identity Inspector

Второй, на мой взгляд, правильный подход

Ответ 9

Swift- 5

Open storyboard as source code.
Locate the button in the xml.
Set customClass="GIDSignInButton" as an attribute for the button tag.
Open storyboard as interface builder.

//MARK:- You will not find this with button XML Forcly Add this (customClass="GIDSignInButton")[![enter image description here][1]][1]