我正在开发一个应用程序,其中包含一个我必须在其中绘制几件东西的视图。
我的观点是这样的:
这只是整个视图的一部分,但所有视图的高度都是一样的。
这代表火车的轨道。所以在我的应用程序中,一些火车会出现在轨道上。
我的问题是,我应该使用哪种技术:
- CoreGraphics 在我的视图上绘制所有内容?
- UITableView,然后只逐行绘制一个轨道,并在里面绘制一些组件(更容易管理?)
- 或其他 ?
非常感谢提前!
我正在开发一个应用程序,其中包含一个我必须在其中绘制几件东西的视图。
我的观点是这样的:
这只是整个视图的一部分,但所有视图的高度都是一样的。
这代表火车的轨道。所以在我的应用程序中,一些火车会出现在轨道上。
我的问题是,我应该使用哪种技术:
非常感谢提前!
你可以同时做:使用 UITableView 进行布局,然后使用 CoreGraphics 独立绘制每个 UITableViewCell。这保留了表格视图的灵活性,同时释放了 CoreGraphics 的绘图功能。
最简单也可能是最有效的方法是使用 png 和UIImageView
. 您可以使用它执行简单的循环动画,并使用.frame.origin
或为其位置设置动画.center
。
如果您想对单独的组件有更多的控制,也许您希望火车的某些部分由于各种参数而产生不同的动画,那么您可以使用CALayer
s 来构建更精细的动画。
作为最后的手段,您可以drawRect:
在UIView
子类中覆盖。在此方法中,您可以使用UIKit
CoreGraphics 函数(UIBezierPath
等)的包装器。UIKit
和 CoreGraphics 使用不同的坐标系统,使用 UIKit 包装器可以缓解这个问题。