В одном из моих проектов 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. Я пытался комментировать несколько строк TouchTeNabled, но безрезультатно. Может кто-нибудь объяснить мне, что мне здесь не хватает?
Спасибо,
Eli