ShakingAlertView 1.0.0

ShakingAlertView 1.0.0

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2014年12月

未登记 维护。




  • Luke Stringer

ShakingAlertView 是一个 UIAlertView 子类,具有密码输入文本字段。错误的密码输入会导致类似于 OS X 账户登录屏幕的“摇动”动画。

screen

视频演示

安装

"src" 文件夹拖入您的项目。它包含所需的 UI 组件和密码散列密码的加密助手。

使用

明文密码

像 UIAlertView 一样使用 ShakingAlertView。要检查明文密码

ShakingAlertView *shakingAlert = nil;
shakingAlert = [[ShakingAlertView alloc] initWithAlertTitle:@"Enter Password"
                                           checkForPassword:@"pass"];

[shakingAlert setOnCorrectPassword:^{
    // Code to execute on correct password entry
}];

[shakingAlert setOnDismissalWithoutPassword:^{
    // Code to execute on alert dismissal without password entry
}];

[shakingAlert show];

而不是使用代理,传递一个完成块来执行正确的密码输入和警报取消的实例。ShakingAlertView 使用 ARC,因此不需要释放您的实例。

散列密码

ShakingAlertView 使用 Common Crypto C API 将输入的文本散列到 SHA1 或 MD5。因此,如果您只知道密码字符串的散列副本,则可以在此构造函数中指定它以及散列算法类型。

ShakingAlertView *shakingAlert = nil;
shakingAlert = [[ShakingAlertView alloc] initWithAlertTitle:@"Enter Password"
                                           checkForPassword:@"W6ph5Mm5Pz8GgiULbPgzG37mj9g=" //sha1 hash of 'password'
                                      usingHashingTechnique:HashTechniqueSHA1];

要使用的散列算法由一个枚举定义并传递给构造函数。

typedef enum {
    HashTechniqueNone,
    HashTechniqueSHA1,
    HashTechniqueMD5
} HashTechnique;

HashTechniqueNone 用于未指定技术,例如在 initWithAlertTitle:checkForPasswordinitWithAlertTitle:checkForPassword:onCorrectPassword:onDismissalWithoutPassword 构造函数中。在这里,使用简单的 isEqualToString: 评估将输入的字符串与指定的明文密码进行比较。

运行测试

ShakingAlertView 类使用 BDD 工具 Kiwi 进行测试。要运行测试,请通过 Cocoapods 安装 Kiwi,然后打开工作区

cd Example\ Project/
pod install
open ExampleProject.xcworkspace/

确保已选择 "ShakingAlertView" 方案,然后使用 ⌘+U 运行测试

致谢

NSData+Base64.h/mb64.h/m 来自 aqtoolkit,由 Jim Dovey

Kiwi 测试工具。

许可证

此代码根据 MIT 许可证的条款和条件分发。

版权所有 (c) 2012 Luke Stringer

在此,任何人获得此软件及相关文档副本(“软件”),被允许免费在此软件中自由操作,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许提供给软件的人进行此类操作,但须遵循以下条件:

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“现状”提供,不提供任何形式的明示或暗示保证,包括但不限于适销性、针对特定目的的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他理由,这些索赔、损害或其他责任源于、源于或与软件或软件的使用或其他使用有关。


作者

关注我的twitter: lukestringer90