2013-07-24 100 views
0

我想知道您是否可以幫助我繪製圖層。在OSx中的CALayer上繪製線條

的情況是這樣的

我對這種屏幕的http://multitouch.com,12觸動同時編程。 在我正在開發的應用程序中,我可以管理多個圖像。我可以旋轉,同時縮放所有圖像的移動(屏幕上最多可以觸摸12個!) 要完成此操作,我只使用圖層進行表演。 每個圖像都由一個CALayer代表,然後創建我的CALayer並將圖像設置爲其「內容」。等級是這樣的。

我只有一個NSView。

  • 的NSView 「Container_View」
  • 的CALayer 「Images_Layer」 作爲 「Container_View」 層的子層(它們具有相同的幀)
  • 的CALayer 「Img_1_Layer」,CALayer的 「Img_2_Layer」,CALayer的 「Img_3_Layer」,等等作爲「Images_Layer」的子圖層

正如我以前告訴過你的,我可以旋轉,縮放和移動我的圖像。

雙擊單個圖像,我鎖定整個屏幕,我仍然可以旋轉和移動圖像,但只能用2個手指。

現在我想用戶可以用1個手指在這張圖片上繪製。

主要問題是我沒有使用圖形的經驗,所有互聯網上的例子都是關於畫線的。

問題是如何用CALayer上的手指進行繪製。我只有CALayer的,我不能有一個NSView

許多thantk提前,塞爾吉奧


嗨Mazyod的CALayer的類,它提供的圖像是非常大的。

請理解這種情況下

主窗口爲根自然

NSViewController稱爲MainViewController用自定義的NSView作爲根視圖 - 這個觀點被稱爲容器,它的設定的主窗口

內容查看CALayer調用了Images_Layer - 這是一個添加爲容器層SubLayer的圖層

CALayer調用了Img_Layer - 它是一個添加爲ImagesLayer的SubLayer的圖層(I h AVE的這一個用於每個圖像,設定爲內容自然,那麼CGImageRef)

當我點擊影像(ImgLayer),3種方法進行燒成照例:

onTouchPointDown - 與X,Y等 onTouchPointMove - 帶x,y等 onTouchPointUp - 帶x,y等

+0

你說你的興趣是在OS X.那你說的是用手指畫一個圖或一條線?點擊圖片?你說的話對我來說不太合理。 –

+0

對不起,我想解釋我的應用程序是如何工作的。是的,我想用一根手指在包含圖像的CALayer上繪製「內容」。 比方說,我有我的CustomLayerImage 3方法: TouchBegan TouchMove TouchEnd –

+0

我建議你展示一些你到目前爲止的代碼,所以我們可以從那裏開始。僅供參考,使用'CALayer'與繪製視圖完全相同,只有一點不同:使用'drawRect:'繪製,而不是使用'drawInContext:' – Mazyod

回答

1

好的,我找到了。

  • 集層的委託
  • 重寫此方法,在委託
  • 調用層setNeedDisplay方法,當你需要

-(void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx

{

NSGraphicsContext *gc = [NSGraphicsContext graphicsContextWithGraphicsPort:ctx flipped:NO]; 
[NSGraphicsContext saveGraphicsState]; 

[NSGraphicsContext setCurrentContext:gc]; 

// draw points with bezier path 

[NSGraphicsContext restoreGraphicsState]; 

}