放大到UIView没有像素化
问题描述:
我有一个绘图应用程序使用UIBezierpaths(向量),我试图创建一个函数,允许我像其他绘图应用程序一样缩放画布/ UIView。我不想放大个人贝塞尔路径,我已经知道如何做到这一点。我想要一个缩放功能像野生动物园,放大画布/视图。放大到UIView没有像素化
如果我使用下面的代码:
self.transform = CGAffineTransform(scaleX: 2, y: 2)
我明白这个问题可能有一个复杂的答案,但我努力自己找到答案。
答
我已经制作了一个可以放大的绘图应用程序。我不记得我是如何设法处理这个的。 但我认为你应该使用UIScrollView来管理缩放/拖动部分。
UIImageView pinch zoom swift
你将能够捏缩放,拖动等几乎免费。 而且它不会像素化我认为
+0
感谢此。我以前玩过这个游戏并没有成功,假设这不是解决方案,但是会继续尝试,现在你已经告诉我这可能是解决方案 – user3290287
答
将UIPinchGestureRecognizer
和UIPanGestureRecognizer
添加到您的图纸视图。然后处理它们的委托事件以更新您的比例和偏移量。然后,您最终使用结果缩放和偏移来重绘(通常通过调用setNeedsDisplay()
)。
我可以从经验告诉你,这些计算有点棘手,但可行。
如果你想实现矢量缩放,你应该自己重新计算点。 'CGAffineTransform'不是基于矢量的。 – the4kman
CGaffinetransform确实会正确放大uibezierpaths,但我想要转换视图 – user3290287