我有一個繪圖應用程序使用UIBezierpaths(向量),我試圖創建一個函數,允許我像其他繪圖應用程序一樣縮放畫布/ UIView。我不想放大個人貝塞爾路徑,我已經知道如何做到這一點。我想要一個縮放功能像野生動物園,放大畫布/視圖。放大到UIView沒有像素化
如果我使用下面的代碼:
self.transform = CGAffineTransform(scaleX: 2, y: 2)
我明白這個問題可能有一個複雜的答案,但我努力自己找到答案。
我有一個繪圖應用程序使用UIBezierpaths(向量),我試圖創建一個函數,允許我像其他繪圖應用程序一樣縮放畫布/ UIView。我不想放大個人貝塞爾路徑,我已經知道如何做到這一點。我想要一個縮放功能像野生動物園,放大畫布/視圖。放大到UIView沒有像素化
如果我使用下面的代碼:
self.transform = CGAffineTransform(scaleX: 2, y: 2)
我明白這個問題可能有一個複雜的答案,但我努力自己找到答案。
我已經制作了一個可以放大的繪圖應用程序。我不記得我是如何設法處理這個的。 但我認爲你應該使用UIScrollView來管理縮放/拖動部分。
UIImageView pinch zoom swift
你將能夠捏縮放,拖動等幾乎免費。 而且它不會像素化我認爲
感謝此。我以前玩過這個遊戲並沒有成功,假設這不是解決方案,但是會繼續嘗試,現在你已經告訴我這可能是解決方案 – user3290287
將UIPinchGestureRecognizer
和UIPanGestureRecognizer
添加到您的圖紙視圖。然後處理它們的委託事件以更新您的比例和偏移量。然後,您最終使用結果縮放和偏移來重繪(通常通過調用setNeedsDisplay()
)。
我可以從經驗告訴你,這些計算有點棘手,但可行。
如果你想實現矢量縮放,你應該自己重新計算點。 'CGAffineTransform'不是基於矢量的。 – the4kman
CGaffinetransform確實會正確放大uibezierpaths,但我想要轉換視圖 – user3290287