У меня есть два вида, основной вид, где я использую CALayers для создания анимации. Этот основной слой обрабатывает события касания touchBegan, затрагиваетMoved и touchesEnded.Как игнорировать штрихи после перехода к просмотру?
Вторая точка зрения представляет собой информационное представление, которое имеет собственный наконечник и содержит инструкции для приложения. Когда пользователь дважды отводы кнопку в главном окне я переворачивать представление информации в месте с ...
if (infoView == nil) {
NSArray* nibViews = [[NSBundle mainBundle] loadNibNamed:@"InfoView" owner:self options:nil];
infoView = [ nibViews objectAtIndex: 0];
[infoView retain];
}
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.0];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:[self view] cache:YES];
[[self view] addSubview:infoView];
[UIView commitAnimations];
Когда пользователь нажимает кнопку в представлении информации я переворачивать основной вид на место с .. .
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.0];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:[self view] cache:YES];
[infoView removeFromSuperview];
[UIView commitAnimations];
проблема, которую я имею, что, когда я нахожусь в информационном, прикосновениях до сих пор поступают главным видом (который был обалдели зрение). Кнопки и текстовые поля в информационном представлении правильно реагируют на касания.
Итак, вопрос в том, как я могу отключить основной вид от получения событий касания, когда информационное представление было перевернуто на место?
UPDATE: Похоже, что я решил свою проблему, но в процессе возникла новая проблема. То, что я пытаюсь сделать, - это управлять двумя UIVIews с помощью единого UIViewController. Проблема была в том, что основной контроллер представления загрузил основной вид, и когда я переключил представления, я добавил информационное представление как подпункт основного вида. Эта иерархия, по-видимому, вызвала касания, которые не использовались в видимом информационном представлении для передачи на главный вид.
Я решил эту проблему, если контроллер основного вида загрузил контейнерный вид. Затем основное представление было загружено в виде подсмотра представления контейнера. Когда я перевернул информационное представление, я добавил его как подпункт представления контейнера. Неиспользованные штрихи, которые появляются в информационном представлении, теперь передаются в представление контейнера, и основной вид никогда их не видит.
Но, я создал новую проблему. Когда основной вид виден, он принимает только события приземления в верхней части представления. Я могу приземлиться в верхней части обзора и перетащить в нижнюю часть и получить касание и коснувшиеся события. Я просто не получаю события приземления в нижней части.
Любая помощь будет оценена по достоинству.
, конечно, если вы настаиваете на том, чтобы делать это так, как вы делали сейчас, вы всегда можете просто установить BOOL infoViewOnScreen, а затем проигнорировать штрихи, если он находится на экране. Но я бы предложил сделать это «правильным» способом выше. Это намного класснее. – 2010-11-28 02:57:55