2014-11-24 85 views
1

我想知道做這件事的最好方法是什麼。我在點擊按鈕上創建新的圖像視圖。該視圖需要附加一個平移手勢識別器。將平移手勢添加到多個動態創建的視圖?

我一直無法得到這個工作。它必須是動態的,因爲用戶需要能夠創建多個視圖。

我迄今爲止代碼:

按鈕點擊方法:

UIImageView *myView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"testImg.png"]]; 
myView.frame = CGRectMake(50, 50, 50, 50); 
myView.userInteractionEnabled = YES; 

[self.view addSubView:myView]; 

UIGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:myView action:@selector(moveView:)]; 
[myView addGestureRecognizer:panGesture]; 

的moveView方法只是改變了新視圖的中心位置。

該視圖創建正常,但當我嘗試移動視圖時,收到'無法識別的選擇器發送到實例'錯誤。

這樣做的正確方法是什麼?

在此先感謝

回答

1

我假設moveView:方法在您的控制器中實現,因爲myView是UIImageView類型的。 通過調用

UIGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:myView action:@selector(moveView:)]; 

你告訴新創建的手勢識別器來觸發moveView:方法MyView的。

嘗試

UIGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(moveView:)];

調用moveView:方法自(控制器?),而不是在MyView的

+0

這只是完美的:)謝謝! – redspidermkv 2014-11-24 14:53:42

1

您要發送的選擇器(方法)「moveView:」你的MyView的東西沒有實現。 (不響應此選擇器)。你需要爲了改變發送給您的viewController,這裏是:

UIGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(moveView:)]; 

有一點是添加的姿態來看,另一個目標是什麼火的方法。

相關問題