繁体   English   中英

如何在drawRect中这样绘制?

[英]How to draw like this in drawRect?

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

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

-drawRect:是放置绘图代码的位置,该代码可以绘制几乎任何您想要的东西。 您当然不限于矩形。 我不确定我是否遵循您的问题的特殊性质-如果您发布一些代码,这会很有帮助。 通常, -drawRect:是放置绘图代码的正确位置,如果视图未按照您希望的方式进行绘图,则很可能是由于代码中的问题而不是-drawRect:方法的局限性。

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

这是一个简单的矩形。

同样,传递一个矩形作为绘制参数。

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

最终,您需要一个足够大以包含整个四边形的框架。 当要求绘制一部分时,您可以确定要绘制的内容以及如何填充它。

由于要在矩形内有4个可移动点,因此必须定义4个点(例如CGPoint)-每个角一个。 使视图的子类成为这些错误。 当它们更改时,请视情况使视图无效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM