2011-11-18 60 views
1

在下面一行我得到警告「之前期望的標識符‘[’令牌」這條線有什麼問題?手勢識別 - >掐

gestureRecognizer.[pictureElement piece].transform = 
CGAffineTransformScale(gestureRecognizer.[pictureElement 
piece].transform, gestureRecognizer.scale, gestureRecognizer.scale); 

我想這是一個愚蠢的錯誤,但我坐在這裏幾個小時沒有發現問題。 在下面你看到整個方法

- (IBAction)pinchDetected:(UIPinchGestureRecognizer *)gestureRecognizer 
{ 
    if (gestureRecognizer.state == UIGestureRecognizerStateBegan || gestureRecognizer.state == UIGestureRecognizerStateChanged) 
    { 
     gestureRecognizer.[pictureElement piece].transform = CGAffineTransformScale(gestureRecognizer.[pictureElement piece].transform, gestureRecognizer.scale, gestureRecognizer.scale); 
     [gestureRecognizer setScale:1]; 
    } 
} 

UPDATE
如果我忘了加括號,這將是一個以上的警告。

第二更新
pictureElement是一個類和片是類的屬性。
所以我想讓手勢對我的class pictureElement的屬性片做出反應。
PictureElement從UIView的繼承和段子的UIView的實例

3日更新
我覺得沒有什麼錯在我的手勢,因爲如果我添加的[pictureElement片]self.view而不是我屏幕開始移動,並提前

+0

'gestureRecognizer。[pictureElement piece] .transform'看起來確實錯了。而'UIPinchGestureRecognizer'沒有名爲'[pictureElement piece]'的屬性。你有''pictureElement'你想在'pinchDetected:'中使用嗎? – debleek63

+0

見上,我編輯我的問題來回答你的問題 – Studie

+0

看到你的界面會有很大的幫助。 – jv42

回答

2

gestureRecognizer.[pictureElement piece].transform =在我的手勢

謝謝反應就沒有意義了。形式爲x.y = z的東西,其中x是對象實例,翻譯成[x setY:z]或在編譯時非常類似的東西 - 即,將消息setY:z發送到實例x

不確定你想要做什麼,但是gestureRecognizer.部分是虛假的,應該不在那裏?下面的代碼或許會更有意義(雖然不一定是正確的):

- (IBAction)pinchDetected:(UIPinchGestureRecognizer *)gestureRecognizer 
{ 
    if (gestureRecognizer.state == UIGestureRecognizerStateBegan || gestureRecognizer.state == UIGestureRecognizerStateChanged) 
    { 
     [pictureElement piece].transform = CGAffineTransformScale([pictureElement piece].transform, gestureRecognizer.scale, gestureRecognizer.scale); 
     [gestureRecognizer setScale:1]; 
    } 
} 

作爲一個側面說明款式事項,考慮一貫堅持要麼點符號(x.y)或消息傳遞符號([x y] )在任何一個地方,當你純粹處理屬性。例如,而不是書寫:

[pictureElement piece].transform = thing 

你能堅持到所有點符號,就像這樣:

pictureElement.piece.transform = thing 

或者你可以把所有的消息傳遞格式,像這樣:

[[pictureElement piece] setTransform:thing] 
+0

謝謝,你真的很好。我沒有警告也沒有崩潰,但是我的UIView仍然沒有對我的手勢做出反應。它讓我失望 – Studie

+0

把一個NSLog放入你的pinchDetected方法中。當你做一個捏時肯定會被叫到嗎? – occulus

+0

還有NSLog的gestureRecognizer.scale值,看看它實際是什麼。 – occulus