iPhone开发问题:
我想画一个四边形,四边形的四个黑角(CGPoint)可以改变。
我覆盖drawRect
方法,但它只显示矩形而不是四边形。这是否意味着drawRect
只能绘制带有四个CGPoints的矩形?
原始要求是通过触摸和移动任何角点来改变四边形的形状。我可以通过覆盖drawRect
来解决这个问题吗?我该怎么办?
感谢。
答案 0 :(得分:0)
-drawRect:
是您放置绘图代码的地方,该代码可以绘制您想要的任何内容。你当然不仅限于矩形。我不确定我是否遵循了问题的特殊性 - 如果您发布一些代码,它会有很大帮助。一般来说,-drawRect:
是放置绘图代码的正确位置,如果您的视图没有按照您希望的方式绘制,则很可能是由于代码中存在问题而不是{{1方法。
答案 1 :(得分:0)
具体而言,您的视图框架定义了其origin{x,y}
和size{width,height}
。
这是一个简单的矩形。
同样,传递一个矩形用于绘制参数。
要让您的视图表示比矩形更复杂的四边形,您必须编写一些自定义几何转换(除非已存在函数)。有许多api可以缓解这种情况(例如NSBezierPath / UIBezierPath)。
最终,你想要一个足够大的框架来容纳整个四边形。当请求绘制其中的一部分时,您可以确定如何填充它。
因为你需要在矩形内有4个可移动点,你必须定义4个点(例如CGPoint) - 每个角落一个。制作视图子类的这些ivars。当它们发生变化时,会使视图失效。