2013-10-14 41 views
0

我想旋转添加到主视图的自定义视图。我试图将手势识别器添加到主视图和子视图。这里是我的代码我的UIRotationGestureRecgonizer处理程序回调没有在iOS中调用

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    UIView *demoView = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)]; 
    UIRotationGestureRecognizer *rg= [[UIRotationGestureRecognizer alloc]initWithTarget:self action:@selector(handleTap:)]; 
    [rg setDelegate:self]; 
    self.view.userInteractionEnabled = YES; 
    demoView.userInteractionEnabled = YES; 
    [demoView addGestureRecognizer:rg]; 
    [self.view addGestureRecognizer:rg]; 
    demoView.backgroundColor = [UIColor orangeColor]; 
    [self.view addSubview:demoView]; 
} 

-(IBAction)handleTap:(UIRotationGestureRecognizer *)recognizer 
{ 
    //NSLog(@"HERE"); 
    recognizer.view.transform = CGAffineTransformMakeRotation([recognizer rotation]); 
    recognizer.rotation = 0; 
    //NSLog(@"AND HERE"); 
} 

回答

0

问题是一个geturerecognizer只能连接到一个视图。对于你的需求,你需要两个手势识别器,但是你可以让它们调用同一个选择器,所以它们不需要实现两次。

编辑: 它有点难以找到这个明确提出在文档,但考虑到view - 属性是一个单一的视图,而不是一个数组或设置或什么的,这让很多的意义。 继承人的文档: https://developer.apple.com/library/ios/documentation/uikit/reference/UIGestureRecognizer_Class/Reference/Reference.html#//apple_ref/occ/instp/UIGestureRecognizer/view

下一个编辑

这个计算器,答案也说明了我的观点: Can you attach a UIGestureRecognizer to multiple views? 所以谁downvoted我的答案,至少告诉我为什么。

+0

谢谢,我明白了这个问题 – TryinHard

+0

@KPTryin - 很高兴我能帮助你。 – katzenhut