IATBaseClasses 1.0.0

IATBaseClasses 1.0.0

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

未声明的所有者维护。



  • 作者:
  • Kurt Arnlund

关于

IATBaseClasses 是我在 iOS 应用开发中使用的对象集合。这些是我过去几年开发出来以提供便利而不会增加很多不必要的代码的工具。我非常热衷于避免做任何我认为过于扭曲或邪恶的事情。这意味着没有方法交换,或向其他对象添加动态属性。这些事情可能有它们存在的位置,但在这里没有。

在这里引起关注的主要对象可能是提供 3D 滚轮视图 的那些,以及便利的视图。这个滚轮基于 UITableViewDataSource 和其相关类和协议。

以下是如何我的滚轮类与 UIKit 中的类相关联的

IATCarouselTableViewCell        =>  UITableViewCell
IATCarouselTableView            =>  UITableView
IATCarouselTableViewController  =>  UITableViewController

UITableView 展示了一系列的单元格,所有这些单元格都可以在任何时候进行交互,而滚轮展示了一系列的单元格,其中只有最前面单元格是打算进行交互的。由于这种差异,您会在滚轮中找到一些方法被移除,因为它们在这里不太合适。

其他类

IATCarouselDataViewController 是一个可选的视图控制器,允许您配置滚轮的外观。您可以根据喜好展示该视图控制器。我通常使用 UIGestureRecognizer 触发它。

IATCarouselData 是一个必需的对象,它简单地管理滚轮的布局规范。

然后 IATCarouselTableView 使用这些数据来生成单元格布局。

这些滚轮对象的一个关键技术特性是配置滚轮布局相当简单。目前代码使用了 V 形布局,但使用椭圆、圆、半圆或贝塞尔路径应该相当容易。我已经将这些之间切换了无数次,而且几乎没有困难。为了简单起见,代码假定了类似圆上的单元格位置。因此,使用 0 到 360 范围内的角度来定位所有单元格在它使用的任何布局函数中。

注意:可能需要一些 3D 技能来计算每个单元格的有效位置和方向,但有许多与布局函数 (IATLayoutFunction2d.h) 相关的技巧可以简化这一点。

依赖关系

旋转木马组件使用了Michael Tyson的(Tasty Pixel) TPPropertyAnimation,并我做了进一步的修改,增加了基于动量的动画效果。每当手指抬起时,单元格使用此动画对象重新定位到其最终静止位置。

一些其他有趣的对象及其用途

IATPerspectiveView

  • 此视图为其子视图提供3D透视效果

IATViewFader

  • 一个用于控制视图不透明度的对象

IATViewSizer

  • 一个控制视图大小的对象。可选地,此对象还旨在调整与主视图大小相关的另一个视图的大小。

IATViewHider

  • 一个使用其任一边缘作为方向和偏移量的提示来控制视图位置的对象(通常用于隐藏视图下的另一个视图)。可选地,此对象还旨在调整与主视图边缘相关的另一个视图的大小。当主视图移动时,从属视图调整大小以占用空间。

CATransformUtilities

  • 打印 CATransform3D

CAVectorUtilties

  • 3D向量和相关实用函数

CGRectUtilities

  • 有用的CGRect函数

示例

请确保关闭IATBaseClasses项目,然后打开IATCarouselTest文件夹,并找到IATCarouselTest.xcodeproj

IATCarouselTest.xcodeproj包含一个示例应用程序,展示了如何在iPhone和iPad上构建一个旋转木马。只需打开它,选择iPad或iPhone构建,然后按运行。

许可

版权(c) 2012 Ingenious Arts and Technologies LLC

此源代码根据MIT许可证授权。我希望您免费使用,没有任何对我的义务,除了在您的应用程序或在设置中某个地方的小型归属外。请参阅License.rtf文件,了解许可信息和所需归属。但简而言之,只需将上述版权声明包含到您的应用程序中,我们就可以顺利地进行。

Kurt Arnlund
Ingenious Arts and Technologies LLC