[英]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.