无法将UIButton的自定义类更改为GIDSignInButton
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法将UIButton的自定义类更改为GIDSignInButton相关的知识,希望对你有一定的参考价值。
我正在尝试将Google登录功能添加到自定义按钮,我正在关注this教程。它告诉我选择按钮,并将其类设置为GIDSignInButton
,然后添加以下代码:@IBOutlet weak var signInButton: GIDSignInButton!
。
但是,它不允许我将类设置为GIDSignInButton
。当我输入并按回车键时,该字段就会清除。
解决方法是在文本模式下打开storyboard
并直接放置它。当你返回interface builder
它会正常显示。
您可以创建UIButton然后在其操作方法上编写此代码以通过谷歌进行签名:
GIDSignIn.sharedInstance().signIn()
它适用于我,通过这种方式,您可以根据您的要求自定义UIButton,并使用谷歌执行登录
您应该尝试不将GIDSignInButton分配给Object库中的Button Object,而是分配给View Object
这对我有用。
那是因为GIDSignInButton是UIView的子类,而不是UIButton。添加到storyboard / nib常规UIView并将其类更改为GIDSignInButton。
来自google doc:
将GIDSignInButton添加到故事板,XIB文件或以编程方式实例化它。要将按钮添加到Storyboard或XIB文件,请添加视图并将其自定义类设置为GIDSignInButton。
- 打开故事板作为源代码。
- 找到xml中的按钮。
- 将customClass =“GIDSignInButton”设置为按钮标记的属性。
- 打开storyboard作为界面构建器。
您现在可以将按钮链接到IBOutlet
几个月前我遇到了同样的问题,
你的代码似乎是正确的
@IBOutlet weak var signInButton: GIDSignInButton!
但是,问题可能是
•您尚未正确添加框架(转到左侧导航器中的项目设置,然后单击构建阶段,添加框架和SHIFT + CMD + K)
•或者,继续在swift文件中写入@IBOutlet,然后拖动按钮进行分配
•您的最后一个选项是关闭xcode,或者删除派生数据
Xcode本身有很多错误,我不确定这是不是你的问题,它是xcode的
希望这可以帮助!
如果使用UIView而不是UIButton,则可以为视图分配GIDSignInButton的自定义类。从那里,您可以将视图连接到按钮插座和操作,如下所示。
@IBOutlet weak var googleLoginButton: GIDSignInButton!
@IBAction func googleLoginButtonPressed(_ sender: Any) {
GIDSignIn.sharedInstance()?.signIn()
}
可以使用UIView或UIButton设置GIDSignInButton。
如果您使用GIDSignInButton作为UIButton
- 打开故事板作为源代码
- 在结果XML中找到按钮
- 添加以下代码作为按钮标记的属性 customClass = “GIDSignInButton”
4.再次打开storyboard作为Interface Builder,按钮类将被更改
如果您使用GIDSignInButton作为UIView
1.copy将自定义类粘贴为Identity Inspector中的GIDSignInButton
在我看来,第二个是正确的方法
斯威夫特-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]
以上是关于无法将UIButton的自定义类更改为GIDSignInButton的主要内容,如果未能解决你的问题,请参考以下文章
Xcode:将 UIButton 类更改为自定义类后,已发送事件消失