在我的应用中,您可以触摸屏幕,屏幕上会显示可编辑的UITextField
。我希望能够在屏幕上移动这些新添加的UITextFields
。我还想添加一个旋转手势和一个捏手势。现在这很难做到,因为每次点击屏幕时都会添加一个新的SubView(UITextField
)。以下是我的编码:
- (IBAction)addText:(UITapGestureRecognizer *)recognizer
{
if (recognizer.state == UIGestureRecognizerStateEnded)
{
UITextField *newText = [[UITextField alloc] initWithFrame:CGRectMake(40, 205, 280, 128)];
newText.hidden = NO;
[self.view addSubview:newText];
newText.text = @"phrase";
[newText setFont:[UIFont fontWithName:@"ArialRoundedMTBold" size:60]];
newText.borderStyle = UITextBorderStyleNone;
UIPanGestureRecognizer *pan= [[UIPanGestureRecognizer alloc] initWithTarget:newText action:nil];
CGPoint translation = [pan translationInView:newText];
pan.view.center = CGPointMake(pan.view.center.x + translation.x, pan.view.center.y + translation.y);
[pan setTranslation:CGPointMake(0,0) inView:self.view];
}
}
答案 0 :(得分:1)
有几种方法可以在手势识别器之间设置依赖关系。这里看起来很有用的一种方法是requireGestureRecognizerToFail:
方法。创建pan
识别器后,添加以下内容:
[recognizer requireGestureRecognizerToFail:pan];
现在点击识别器(在recognizer
变量中)将不会激活,除非平移识别器已确定用户不平移。