我正在尝试旋转添加到主视图的自定义视图。我试图将手势识别器添加到主视图和子视图中。这是我的代码
- (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 :(得分:0)
问题是一个geturerecognizer只能附加到一个视图。根据您的要求,您需要两个手势识别器,但您可以让它们调用相同的选择器,因此无需执行两次。
编辑:
有点难以在文档中清楚地找到这一点,但考虑到view
- 属性是单个视图,而不是数组或集合或其他什么,它有很多意义。
继承人的文件:
https://developer.apple.com/library/ios/documentation/uikit/reference/UIGestureRecognizer_Class/Reference/Reference.html#//apple_ref/occ/instp/UIGestureRecognizer/view
下一个编辑
这个stackoverflow-answer也说明了我的观点: Can you attach a UIGestureRecognizer to multiple views? 所以,无论是谁投票给我答案,至少告诉我原因。