创建具有触摸视图值功能的条形图的好策略?

时间:2011-05-08 11:49:05

标签: iphone objective-c design-patterns bar-chart

我想创建一个条形图。我已经有了一个图表组件,我只需要将其调整为条形图。当触摸其中一个条形时,值会以小视图弹出。

正如我所看到的,这里可以应用几种不同的策略。我想知道的是我应该使用哪种策略?任何这些或者还有其他更好的想法?:

  1. Bar是UIButton。
  2. Bar是支持触控的UIImage。
  3. Bar是一个UIView。
  4. Bar只是绘制的图形,我必须对触摸的坐标进行转码并进行一些计算,以便知道触摸了哪个条形图。我不相信这个策略,但也许有理由重新考虑一下你可以为我提供......
  5. 我假设UILable是表示与栏相关的数据的方式吗?

    提前感谢您的建议!

3 个答案:

答案 0 :(得分:0)

我的想法是#2和#3有点相同,因为你使用UIImageView显示图像。 UIButton是一个非常薄的UIView层,它使事件处理变得容易,但它可能会做一些你不想要的视觉效果(或者你可能会这样做?)。无论哪种方式,尝试这些变化都很容易,我只是玩它。我没有看到#4的具体原因,除非你的整体策略驱使你走向这个方向,比如你可能开始做一些丰富/复杂的绘图,以至于你创建了太多的视图。

AFA弹出显示,它真的取决于你的意思是“弹出”。就像弹出一样,你需要一种方法来解雇那个弹出窗口吗?

答案 1 :(得分:0)

以我的拙见,并写了很多条形图(和其他图表)......#4实际上是性能和个人偏好的正确选择。在内存中创建虚拟图形以将触摸映射到条形图并不困难,因为您只需将矩形存储在数组中并检查点是否在该矩形内。

 CGRectContainsPoint(CGRect, CGPoint);

现在,已经说过,如果你想在你的图表中引入动画,这是非常酷的东西......那么我可以创建一个由几个UIViews组成的UIView(每个条形或条形段一个),这个您可以单独为每个条形图设置动画,而无需编写自己的动画循环。

只是我的两分钱。

答案 2 :(得分:0)

你签出了Core Plot吗?它是一个活跃而强大的库,非常灵活,可以满足您的所有需求。