我一直在做一些iOS绘图的实验。为了做一个实践练习,我编写了一个 BarChart 组件。下面是类图(好吧,我不允许上传图片)所以让我用文字写出来。我有一个继承自 UIView 的 NGBarChartView,它有 2 个协议 NGBarChartViewDataSource 和 NGBarChartViewDelegate。代码位于https://github.com/mraghuram/NELGPieChart/blob/master/NELGPieChart/NGBarChartView.m
为了绘制 barChart,我将每个 barChart 创建为不同的 CAShapeLayer。我这样做的原因有两个,首先我可以创建一个 UIBezierPath 并将其附加到一个 CAShapeLayer 对象和两个,我可以通过使用 [Layer hitTest] 方法轻松跟踪 barItem 是否被触摸。该组件运行良好。但是,我对绘制条形图所采用的方法并不满意。因此这个笔记。我需要关于以下方面的专家意见
- 通过使用 CAShapeLayer 并创建 BarItems 我真的没有使用 UIGraphicsContext,这是一个好的设计吗?
- 我的方法将在 UIView 中创建几个 CALayers。根据性能,您可以在 UIView 中创建的 CALayer 的数量是否有限制。
- 如果一个好的替代方法是使用 CGContext* 方法,那么识别特定路径是否已被触及的正确方法是什么
- 从动画的角度来看,比如当你点击 Bar 时它会闪烁,是 Layer 设计更好还是 CGContext 设计更好。
非常感谢您的帮助。顺便说一句,您可以随意查看我的代码和评论。我很乐意接受任何改进的建议。
最好的,穆拉利