簡體   English   中英

向多個動態創建的視圖添加平移手勢嗎?

[英]Adding pan gesture to multiple dynamically created views?

我想知道這樣做的最好方法是什么。 我在單擊按鈕時創建了一個新的imageview。 此視圖需要連接一個平移手勢識別器。

我一直無法使它正常工作。 它必須是動態的,因為用戶需要能夠創建多個視圖。

到目前為止,我的代碼:

按鈕點擊方式:

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方法僅更改新視圖的中心位置。

視圖創建良好,但是當我嘗試移動視圖時,收到“無法識別的選擇器發送到實例”錯誤。

正確的方法是什么?

提前致謝

您正在將選擇器(方法)“ moveView:”發送到myView中未實現的東西。 (不響應此選擇器)。 您需要更改以便發送到您的viewController,這里是:

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

一件事是添加手勢的視圖,另一件事是觸發方法的對象。

我假設moveView:方法在您的控制器中實現,因為myView的類型為UIImageView。 通過致電

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

您告訴新創建的手勢識別器在myView中觸發moveView:方法。

嘗試

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

在self(您的控制器?)而不是myView中調用moveView:方法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM