我需要沿着圖像的形狀繪製路徑,使其始終與圖像在圖像上的位置相匹配,而與圖像比例無關。想象一下,就像谷歌地圖的混合視圖,街道名稱和道路疊加在航空照片的頂部。在UIImage上疊加2D路徑而不縮放文物
此外,此路徑將由用戶的手指移動繪製,我需要能夠檢索圖像像素座標上的路徑關鍵點。用戶放大以更精確地設置路徑位置。
我設法以某種方式使其工作使用這種方法:
- 創建一個自定義的UIView稱爲CanvasView,處理觸摸互動,並根據提供縮放,旋轉,平移值無論是UIImageView的或PathsView(參見下文)一個標誌:deliverToImageOrPaths。
- 創建一個保存基本圖像的UIImageView。這是設置爲Canvas的子視圖
- 創建一個名爲PathsView的自定義UIView,用於跟蹤2D路徑幾何圖形並使用自定義drawRect繪製自己。這是設置爲UIImageView的子項。
所以層次:CanvasView - >的UIImageView - > PathsView
在當deliverToImageOrPaths是YES,手指手勢轉換兩個的UIImageView及其子PathsView這種方式。當deliverToImageOrPaths爲NO時,手勢僅影響PathsView更改其幾何。到現在爲止還挺好。
問題:我遇到的問題是縮放基本UIImageView(通過其.transform屬性)時,PathsView與鋸齒工件縮放。 drawRect仍然在PathsView上被調用,但我想它正在使用原始緩衝區大小執行繪圖,然後進行插值。
我該如何解決這個問題?有更好的方法來實現這些功能嗎?
PS:我試着用levelsOfDetailBias 4和levelsOfDetail 4將PathsView圖層類更改爲CATiledLayer。它在某種程度上解決了別名問題,但它的渲染速度緩慢,令人無法接受。