【问题标题】:draw line/point on existing UIView without drawRect?在没有drawRect的现有UIView上绘制线/点?
【发布时间】:2010-10-26 13:27:09
【问题描述】:

我创建了折线图。现在,当我点击屏幕时,我需要在此图表上显示点。 最好的方法是什么?是否需要再次调用drawRect方法,用标记点绘制整个图表?

我正在考虑图表UIView 上的透明层之类的东西。 我可以创建另一个透明的UIView 并将其放在我的图表位置吗?

【问题讨论】:

    标签: iphone objective-c ios layer drawrect


    【解决方案1】:

    由于所有绘图都是在视图的drawRect: 中完成的,因此您只能优化图表的绘图,以便仅更新其中的一部分并使用setNeedsDisplayInRect:(通过标记应该在的区域)。

    或者您创建另一个 UIView 子类,该子类位于图表顶部,除了在透明背景上绘制标记之外什么都不做。可能更容易和更快地实施。它还有另一个好处:

    如果您使该视图仅与标记的边界框一样大,您还可以轻松地对其进行动画处理,例如淡入淡出。或者让它旋转一点(要查看我想到的效果,请在 Mac OS X 中选择“帮助”菜单,在搜索字段中键入“a”之类的内容,然后查看菜单项旁边的标记移动一点一个点)。

    【讨论】:

    • 我决定在previous的顶部创建新的UIView。
    【解决方案2】:

    您可以使用setNeedsDisplayInRect: 绘制视图的一部分。

    【讨论】:

    • 这种情况下,还需要使用drawRect中的rect参数:只在那个rect中绘制...
    • hm... 但将重新计算此矩形中的图表形状,并且在 touchesEnded 后我需要清除该区域。在同一个矩形中创建另一个 UIView 是个好主意吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-28
    • 1970-01-01
    • 2020-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多