这是一个用于iOS应用的可重用的密码子系统。这是由Appstronomy为我们自己的内部项目和客户项目作为密码基础使用的。我们希望分享我们的解决方案,满足共同的需求。
最初是用Objective-C构建的,这个框架也将在您的Swift应用中很好地工作,就像我们在这个仓库中捆绑的示例Swift应用所展示的那样。示例应用展示了您可能如何使用APPSPasscode框架,包括如何自定义它。
以下动画展示了这个仓库内捆绑的示例应用的功能。在这里,您将看到默认和自定义的视觉样式。
在iPad上,该组件仍然使用iPhone大小的控件,并居中对齐在iPad屏幕上。这是从PK-PD Compass应用为临床医生的一个例子。这也是自定义样式的另一个例子。
您可以根据您应用的需求改变密码的视觉外观(线条、颜色、图像)。虽然默认样式模仿了Apple自己的原生iOS密码控件,但我们不建议您使用这个默认样式。它只是一个例子,为您提供一个熟悉的起点。
我们从艰辛的经验中学到了,您的应用可能会因为提供了与Apple自己的密码控件过于相似的控件而被拒绝。
因此,我们建立了一种通用的样式化密码组件的方式。这样,它可以承担它所服务的宿主应用的外观。并且成功通过App Review也是一个值得追求的目标!:)
在这仓库中的示例应用中,您将看到默认样式和一个自定义样式。
要配置您喜欢的视觉样式,您将创建一个APPSPasscodeViewConfiguration
实例,并将其设置在APPSPasscodeViewController
的viewConfiguration
上。
以下是一个从捆绑的示例应用中获取的示例,使用Swift。它来自DemoPasscodeService.swift
var configuration: APPSPasscodeViewConfiguration?
if passcodeStyle == .Custom {
configuration = APPSPasscodeViewConfiguration()
configuration!.topToLogoSpacing = 30
configuration!.logoToInstructionLabelSpacing = 30
configuration!.rootViewBackgroundColor = UIColor.lightGrayColor()
configuration!.messageContainerBackgroundColor = UIColor.lightGrayColor()
configuration!.keypadBackgroundColor = UIColor.lightGrayColor()
configuration!.keypadBackgroundColor = UIColor.grayColor()
configuration!.keypadNumericKeyDefaultColor = UIColor.grayColor()
configuration!.keypadNumericKeyHighlightColor = UIColor.darkGrayColor()
configuration!.keypadTextColor = UIColor.whiteColor()
configuration!.bulletColor = UIColor.darkGrayColor()
}
let passcodeController = APPSPasscodeViewController()
passcodeController.viewConfiguration = configuration
在您的应用中使用APPSPasscode最简单的方法是将其作为Carthage依赖项添加。
请在您应用项目的Cartfile
中添加以下条目
github "appstronomy/APPSPasscode"
如果您打开APPSPasscode.xcodeproj
项目文件,您将只看到APPSPasscode框架。
如果您打开APPSPasscode.xcworkspace
工作空间文件,您将看到APPSPasscode框架以及一个示例应用,展示如何使用它。
APPSPasscode框架包含对Lockbox实用类的嵌入式依赖。因此,当您将其引入项目中时,无需担心该框架的carthage或cocoapod依赖项。
话虽如此,您可以忽略该默认依赖项并选择使用其他工具或机制来存储用户的密码。
原始密码子系统是由Chris Morris于2014年为Appstronomy创建的。
后来的改进是由Ken Grigsby和Sohail Ahmed完成的。UI/UX指导由Salman Sajid在整个客户项目集成过程中提供(不幸的是,我们无法在这个repo中为您提供这些更精美的样式)。