在我的一个 iPhone 项目中,我有三个视图,您可以通过触摸和拖动来移动它们。但是,我想通过使用两个手指来阻止用户同时移动两个视图。因此,我尝试尝试使用 UIView.exclusiveTouch,但没有任何成功。
为了了解该属性的工作原理,我创建了一个全新的项目,在视图控制器中使用以下代码:
- (void)loadView {
self.view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
UIButton* a = [UIButton buttonWithType:UIButtonTypeInfoDark];
[a addTarget:self action:@selector(hej:) forControlEvents:UIControlEventTouchUpInside];
a.center = CGPointMake(50, 50);
a.multipleTouchEnabled = YES;
UIButton* b = [UIButton buttonWithType:UIButtonTypeInfoDark];
[b addTarget:self action:@selector(hej:) forControlEvents:UIControlEventTouchUpInside];
b.center = CGPointMake(200, 50);
b.multipleTouchEnabled = YES;
a.exclusiveTouch = YES;
[self.view addSubview:a];
[self.view addSubview:b];
}
- (void)hej:(id)sender
{
NSLog(@"hej: %@", sender);
}
当运行这个时,hej: 被调用,不同的发件人,当按下任何一个按钮时——即使其中一个将 ExclusiveTouch 设置为 YES。我试过评论multipleTouchEnabled-lines,但无济于事。有人可以向我解释我在这里缺少什么吗?
谢谢, 伊莱