如何调整自定义UIView的大小并按比例维护其自定义绘图?

时间:2012-02-17 12:39:34

标签: ios

我有一个自定义视图,上面有一些绘图。 我想将它调整为一个新的比例,我希望我绘制的模式的drawRect也可以按相同的比例调整大小。

无论如何,我可以在不刷新和重新绘制所有内容的情况下完成此任务。

2 个答案:

答案 0 :(得分:2)

这应该会自动发生,默认contentModeUIViewContentModeScaleToFillcontentMode确定如何调整缓存的位图,而不强制对drawRect:进行新的调用。另请参阅contentStretch,它允许您控制缩放视图的哪个部分。

答案 1 :(得分:0)

您必须重新绘制新比例。

为此,您必须存储构成CGPath的点并根据新比例缩放点并再次渲染它。

重绘CGPath需要注意。

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