LSCreditCardForm
简单易用的引人入胜的信用卡表单。
演示
用法
要使用 LSCreditCardForm,只需将 LSCreditCardFormView
添加到您的视图控制器和布局中。在每次视图大小变化时,LSCreditCardFormView
的内容会动态调整,布局也会更新。使用 LSCreditCardFormDelegate
获取用户输入到表单中的值。委托协议包含一个方法 didCompleteForm(creditCard: LSCreditCard)
,该方法是用户点击完成按钮时调用的。库不会验证输入数据,只会确保用户没有输入无效的字符。
LSCreditCardFormView
当前检测以下信用卡发行者:VISA Mastercard AmericanExpress DinersClub Discover enRoute JCB Maestro
定制
可以使用 LSCreditCardFormConfig
及其子字段定制表单的各个方面。定制点包括字体、文本颜色、背景颜色以及提供自定义信用卡图像的功能。重要提示:必须在 LSCreditCardFormView
实例化之前进行所有自定义。
当用户输入允许的最大字符数时,文本字段会自动更改焦点。这在大多数情况下工作良好,但与维萨卡存在问题。维萨信用卡的最大数字位数是19位,但绝大多数信用卡只有16位。这将使得输入维萨卡变得很烦人,因此配置有一个CreditCard.softLimitVisaTo16Digits
,可以设置为true
以自动跳转到下一个文本字段,当用户输入第16位数字时。在极少数情况下,当用户想输入19位数字时,他可以手动返回到数字文本字段。
如果您想限制检测哪些信用卡,可以通过提供您想要检测的类型数组的覆盖CreditCard.supportedTypes
属性。用户仍然可以输入任何信用卡号,禁用某些类型的检测只是为了简单地将信用卡图像保留在“未知”信用卡上。
自定义类型
您可以提供额外信用卡类型的检测和图像。使用代理方法func getCustomCardType(for number: String) -> LSCreditCardType?
来检查CC号是否属于您的自定义类型。如果它不属于,则返回nil
,以便库进行默认类型检测。您还应使用回调提供您的图像类型LSCreditCardFormConfig.CreditCard.imgBackForCustomType
和LSCreditCardFormConfig.CreditCard.imgFrontForCustomType
。有关更多详细信息,请参阅示例项目。目前,仅支持自定义图像,无法提供自定义数字长度和格式,默认为所有自定义类型使用4-4-4-4。
键盘
如果您希望在新的视图控制器出现时立即调用键盘,请在LSCreditCardFormView
上调用becomeFirstResponder
。
安装
LSCreditCardForm可通过CocoaPods获得。要安装它,只需将以下行添加到您的Podfile中
pod 'LSCreditCardForm'
在LSCreditCardForm之外使用LSCreditCardView
如果您想在应用程序中显示信用卡视图,您可以。首先创建一个LSCreditCardView
实例并将其添加到视图层次中。创建一个LSCreditCard
实例,输入信用卡号、持卡人姓名、到期日期字符串和类型,然后在对您的LSCreditCardView
实例调用updateValues(creditCard:)
方法。
许可证
LSCreditCardForm以MIT许可证提供。有关更多信息,请参阅LICENSE文件。