FWTClock是一个灵活且易于定制的模拟时钟。您可以将FWTClock用作实际时钟,或者用它作为计时戳,在运行时创建动态图像。
FWTClock在它的队列上滴答,不会锁定主循环。您可以选择不同的振荡器模式(动画):机械的、石英的和带微小向后跳跃的石英。FWTClock是控制器对象,它包含FWTClockView视图。控制器负责计算时钟每个指针的正确旋转转换,并应用它们,带有或没有动画。FWTClockView可以通过访问其公共属性或实现协议来配置。
该项目尚未为ARC准备就绪。
如果您对默认时钟样式满意,则无需进行太多调整
self.clock = [[FWTClock alloc] init];
self.clock.oscillatorType = FWTClockOscillatorTypeMechanical;
self.clock.clockView.frame = CGRectMake(.0f, .0f, 300.0f, 300.0f);
[self.view addSubview:self.clock.clockView];
FWTClockView是所有用于UI的视图的基本容器:背景、时钟的指针、环形。时钟视图在初始布局中读取subviewsMask和,如果需要,创建默认子视图;否则它只是将子视图的边界和中心点设置到子视图上。您可以通过访问每个默认子视图来调整它们的外观(以下将提供更多详细信息)或者您可以用自己的自定义UIView子类轻松地替换它们。这不是必须的,但您还可以使用矩形在单位坐标空间中指定每个子视图的框架。
视图还有几个属性,可帮助您配置时钟外观
FWTClockShapeView 该超级类的后备层是一个 CAShapeLayer。视图仅在需要时调用 updateShapePath,并依赖于 pathBlock 属性来设置层的路径属性。使用 edgeInsets 属性来调整和重新定位有效矩形。
FWTClockBackgroundView 这个类显示了一个可能的背景样本
FWTClockHandView 每根指针的高度与时钟视图的高度匹配(锚点为默认值)。还有一些额外的属性:start 和 end,这是在层的坐标空间中绘制路径时的起点和终点。
请参见示例项目。
Apache License Version 2.0
如果您想提交一个功能请求,请通过github上的问题跟踪器进行。如果您想提交错误报告,也请通过问题跟踪器提交,包括问题诊断和修复建议(代码)。