UIPanGestureRecognizer で問題に直面しています。最初のボタンを追加するときに、異なるタグを使用して10個のボタンを動的に追加し、それを他の場所にドラッグしようとすると、正常に動作するとします。次に、他のボタンを追加してからその2番目のボタンをドラッグしようとすると、うまく機能しますが、最初のボタンをドラッグしてドラッグすると、ドラッグされません。ログに表示されるメッセージは、ジェスチャ認識エンジンがアクティブでないため、[UIPanGestureRecognizer setTranslation:inView:] への呼び出しを無視しています。ジェスチャは、最近追加されたボタンでのみ機能します。以下は私が使用しているコードです
ボタンを追加するコードは次のとおりです
NSUInteger counter = 1;
if([ButtonArray count] !=0 ){
NSLog(@"%d",[ButtonArray count]);
NSLog(@"hi");
counter = [ButtonArray count] + 1;
}
[ButtonArray addObject:[NSString stringWithFormat:@"%d",counter]];
NSLog(@"%d",1);
UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[btn setTag:counter];
btn.frame = CGRectMake(80.0, 210.0, 160.0, 40.0);
//[btn addTarget:self action:@selector(Dragged:withEvent:) forControlEvents:UIControlEventTouchDragInside];
//[self.view addSubview:btn];
btn.userInteractionEnabled = YES;
gesture = [[UIPanGestureRecognizer alloc]
initWithTarget:self
action:@selector(labelDragged:)];
[btn addGestureRecognizer:gesture];
// add it
[self.view addSubview:btn];
ここにジェスチャーのコードがあります
UIButton *button = (UIButton *)gesture.view;
CGPoint translation = [gesture translationInView:button];
// move button
button.center = CGPointMake(button.center.x + translation.x,
button.center.y + translation.y);
// reset translation
[gesture setTranslation:CGPointZero inView:button];