如何在drawRect中画这样的?

时间:2011-04-25 01:31:51

标签: iphone touch drawrect

iPhone开发问题: 我想画一个四边形,四边形的四个黑角(CGPoint)可以改变。 我覆盖drawRect方法,但它只显示矩形而不是四边形。这是否意味着drawRect只能绘制带有四个CGPoints的矩形?

原始要求是通过触摸和移动任何角点来改变四边形的形状。我可以通过覆盖drawRect来解决这个问题吗?我该怎么办? 感谢。

2 个答案:

答案 0 :(得分:0)

-drawRect:是您放置绘图代码的地方,该代码可以绘制您想要的任何内容。你当然不仅限于矩形。我不确定我是否遵循了问题的特殊性 - 如果您发布一些代码,它会有很大帮助。一般来说,-drawRect:是放置绘图代码的正确位置,如果您的视图没有按照您希望的方式绘制,则很可能是由于代码中存在问题而不是{{1方法。

答案 1 :(得分:0)

具体而言,您的视图框架定义了其origin{x,y}size{width,height}

这是一个简单的矩形。

同样,传递一个矩形用于绘制参数。

要让您的视图表示比矩形更复杂的四边形,您必须编写一些自定义几何转换(除非已存在函数)。有许多api可以缓解这种情况(例如NSBezierPath / UIBezierPath)。

最终,你想要一个足够大的框架来容纳整个四边形。当请求绘制其中的一部分时,您可以确定如何填充它。

因为你需要在矩形内有4个可移动点,你必须定义4个点(例如CGPoint) - 每个角落一个。制作视图子类的这些ivars。当它们发生变化时,会使视图失效。