2011-04-25 55 views
0

iPhone开发问题: 我想绘制四角形的四个黑角(CGPoint)可变的四边形。 我覆盖了drawRect方法,但它只显示矩形而不是四边形。这是否意味着drawRect只能绘制四个CGPoint的矩形?如何在drawRect中绘制这样的图像?

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

回答

0

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

+0

谢谢!我会检查我的代码。 – Nauhc 2011-04-25 03:54:22

0

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

这是一个简单的矩形。

以及为绘制参数传递矩形。

为了让您的视图呈现比矩形更复杂的四边形,您必须编写一些自定义几何转换(除非函数已经存在)。有许多apis可以缓解这一点(例如NSBezierPath/UIBezierPath)。

最终,你想要一个足够大的框架来容纳整个四边形。当被要求画出一部分时,你决定画什么来填充它。

因为你想要在矩形内有4个可移动点,所以你必须定义4个点(例如CGPoint) - 每个角点一个点。使这些视图的子类成为这些ivars。当它们改变时,根据需要使视图无效。

+0

非常感谢!你能告诉我如何改变4分的价值并将其显示在屏幕上吗?我在这里用代码问了这个问题:http://stackoverflow.com/questions/5775557/how-to-let-drawrect-get-the-value-of-points-from-viewcontroller-and-draw – Nauhc 2011-04-25 07:05:59