Jason Hall

3个Pods

INTUAnimationEngine

INTUAnimationEngine使得在iOS上构建高级自定义动画变得容易。

INTUAnimationEngine提供了一个友好的界面来驱动使用CADisplayLink的自定义动画,灵感来源于UIView基于块的动画API。它允许交互式动画(通常由用户输入驱动,如拖动或捏合手势)在给定的时间内自动运行。它还用于获取动画每一帧的回调。

INTUAnimationEngine包含一个广泛的自定义动画定时函数库,以及一个完整的插值函数库来动画化任何类型的数据或属性,包括不能由Core Animation动画化的属性。

该项目还包括一个独立的支持阻尼谐振运动的弹簧物理库。这个库在底层用于在INTUAnimationEngine上提供一个弹簧动画API,允许完全控制阻尼、刚度和质量参数。由于弹簧求解器是一个完全独立和通用的纯C实现库,它除了动画之外,还可以用于许多其他应用。

许可:[MIT](http://opensource.org/licenses/MIT)

  • Objective-C

INTUGroupedArray

INTUGroupedArray是一个Objective-C数据结构,将一维数组提升到下一个维度。分组数组的设计有一个熟悉的API,与诸如NSArray之类的Foundation集合一起使用,具有完整的不可变和可变变体。一个轻量级的桥梁将分组数组引入Swift作为原生类,在那里它利用了泛型、可选型、下标、字面量、元组等强大的功能,安全性和灵活性。

INTUGroupedArray非常灵活,可以作为通用数据存储机制替换复杂的嵌套数组或其他数据结构组合。分组数组非常适合用作UITableView数据源,因为它与数据源和代理回调高度兼容——在很多情况下只需一行代码。然而,它也适合用于iOS和OS X应用的整个栈。

许可:[MIT](http://opensource.org/licenses/MIT)

  • Objective-C

INTULocationManager

INTULocationManager

INTULocationManager使得在iOS上获取设备当前位置变得容易。它是一个Objective-C库,Swift中使用也很出色。

INTULocationManager提供了一个基于块的异步API来请求当前位置,一次或持续进行。它内部管理多个同时位置请求,每个一次性请求可以指定其所需的精度水平和超时持续时间。INTULocationManager在首次请求时自动启动位置服务,一旦所有请求完成就停止位置服务,同时动态管理位置服务消耗的电量,以减少对电池寿命的影响。

CLLocationManager有什么问题?

CLLocationManager需要您手动检测和处理诸如权限、旧/不准确的位置、错误等情况。CLLocationManager使用更传统的委托模式而不是现代的基于块的回调模式。虽然它适合跟踪用户位置随时间的变化(如用于实时导航),但正确请求单个位置更新(如确定用户的当前城市以获取天气预报,或来自当前位置自动填写地址)非常繁琐。

INTULocationManager让请求设备当前位置变得简单,无论是单次还是连续请求。对于单次位置请求和持续的位置更新订阅,API设计得很简单。对于单次位置请求,您可以指定您需要的地理位置精度以及接受等待的时间。还支持对地理位置变化的重要监控。INTULocationManager省电高效,通过自动确定并使用最有效的核心位置精度设置,以及在不使用时自动关闭位置服务(例如GPS),从而节省电池电量。

许可证:MIT

  • Objective-C