如何调整自定义UIView,并保持其自定义绘制比例?

我有一个自定义的视图和一些图纸。 我想把它调整到一个新的比例,我想把它绘制在drawRect中的模式也调整到相同的比例。

无论如何,我可以做到这一点,而无需刷新和重绘一切。

这应该会自动使用默认的contentMode ,这是UIViewContentModeScaleToFillcontentMode确定如何调整caching的位图而不强制对drawRect:进行新的调用。 另请参阅contentStretch ,它允许您控制视图的哪一部分被缩放。

你将不得不重新绘制新的比例。

为此,您必须存储创buildCGPath的点,并根据新比例缩放点并再次渲染。

重新绘制CGPath需要注意。

  • 如果您已经使用了简单的moveTopoint / AddlinePoint,只需将点存储在数组中即可。 您可以稍后进行缩放和重绘。
  • 如果你可以使用像addcurveTopoint等函数,在数组中存储点将不起作用。一个通用的方式是必要的。为此你必须使用CGpathApply函数。 你可以在这里看到一个例子。 http://www.mlsite.net/blog/?p=1312
  • 如果您需要缩放并且不需要互动,则可以进行scrrenshot并缩放图像。