Ios UIPangestureRecognitor UIView insertSubview位于子视图下方
我为UIButton添加了PangestureRecognitor,Ios UIPangestureRecognitor UIView insertSubview位于子视图下方,ios,objective-c,uibutton,uipangesturerecognizer,Ios,Objective C,Uibutton,Uipangesturerecognizer,我为UIButton添加了PangestureRecognitor, 我不明白以下几点: - (IBAction)handlePan:(UIPanGestureRecognizer *)recognizer { switch([recognizer state]){ case UIGestureRecognizerStateBegan: { UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRe
我不明白以下几点:
- (IBAction)handlePan:(UIPanGestureRecognizer *)recognizer {
switch([recognizer state]){
case UIGestureRecognizerStateBegan: {
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button setFrame:recognizer.view.frame];
[button setBackgroundColor: [UIColor redColor]];
// [self.view insertSubview:button belowSubview:recognizer.view];
_tempButton = button;
}break;
case UIGestureRecognizerStateChanged: {
CGPoint translation = [recognizer translationInView:self.view];
recognizer.view.center = CGPointMake(recognizer.view.center.x + translation.x, recognizer.view.center.y + translation.y);
[recognizer setTranslation:CGPointMake(0, 0) inView:self.view];
}break;
}
}
在上面这个例子中,一切进展顺利。开始停止从上一个位置拖动
但是如果我取消注释这些行
// [self.view insertSubview:button belowSubview:recognizer.view];
奇怪的事情发生了。1) 开始拖动按钮。红色按钮被添加到视图中。NORMAL
2) 停止拖动按钮。这是正常的
3) 当我从上一个位置(上一步)再次开始拖动UIButton时,红色按钮下方会创建一个新按钮,该按钮开始作为原点按钮移动。第二步后我留下的按钮消失了奇怪
为什么?您可以在添加
uipangestrue
的地方添加代码吗?使用ib或不使用ibuipangestruerecognizer*pangestrue=[[uipangestruerecognizer alloc]initWithTarget:self action:@selector(handlePan:)];[\u userBtn addgesture识别器:panGesture]代码>我认为这是一个参考问题,在某个地方,按钮的参考被互换了。