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