放大到UIView没有像素化

问题描述:

我有一个绘图应用程序使用UIBezierpaths(向量),我试图创建一个函数,允许我像其他绘图应用程序一样缩放画布/ UIView。我不想放大个人贝塞尔路径,我已经知道如何做到这一点。我想要一个缩放功能像野生动物园,放大画布/视图。放大到UIView没有像素化

如果我使用下面的代码:

self.transform = CGAffineTransform(scaleX: 2, y: 2) 

此: enter image description here

打开成这样了,你会发现是相当模糊的/不光滑如向量应该是: enter image description here

但我希望它看起来像这样,这是另一个绘图应用程序会发生什么enter image description here

我明白这个问题可能有一个复杂的答案,但我努力自己找到答案。

+1

如果你想实现矢量缩放,你应该自己重新计算点。 'CGAffineTransform'不是基于矢量的。 – the4kman

+0

CGaffinetransform确实会正确放大uibezierpaths,但我想要转换视图 – user3290287

我已经制作了一个可以放大的绘图应用程序。我不记得我是如何设法处理这个的。 但我认为你应该使用UIScrollView来管理缩放/拖动部分。
UIImageView pinch zoom swift

你将能够捏缩放,拖动等几乎免费。 而且它不会像素化我认为

+0

感谢此。我以前玩过这个游戏并没有成功,假设这不是解决方案,但是会继续尝试,现在你已经告诉我这可能是解决方案 – user3290287

UIPinchGestureRecognizerUIPanGestureRecognizer添加到您的图纸视图。然后处理它们的委托事件以更新您的比例和偏移量。然后,您最终使用结果缩放和偏移来重绘(通常通过调用setNeedsDisplay())。

我可以从经验告诉你,这些计算有点棘手,但可行。