Я новичок в программировании на iOS.При создании пользовательского UITabbarController я застрял со странной разницей в действиях между iOS4 и iOS5.Если у кого-то есть идея для решения этой проблемы, пожалуйста, дайте мне знать, где я пропустил.
То, что я хотел, это.
- UITableView / UITabBarController
- Singleкасание для переключения панели вкладок должно работать даже во время прокрутки.
- Двойное касание (и еще больше) должно распознаваться.
UITabBarController + UITapGestureRecognizer + UITableView работают вместе с событием двойного касания.
Что меня сводит с ума, так это.
Очень простое одиночное нажатие событие для переключения элемента касания, не называется во время прокрутки во время прокрутки UITableView. Вместо этого после завершения прокрутки кран изменился.
Вот как я это сделал.
Я хочу, чтобы UITabBar распознавал двойную вкладку.Когда она дважды нажата, прокрутите UITableView к вершине.Поэтому я сделал проект с дополнением панели вкладок.
- DoubleTapBarController (пользовательский UITabBarController)
- панель вкладок (UITabBar)
- Первый VC (пользовательский UIViewController)
- UITabBarItem по умолчанию
- Второй виртуальный канал (пользовательский и пустой UIViewController по умолчанию)
- UITabBarItem по умолчанию
В первом представлении / VC
- Добавлен простой вид таблицы с * таблицей Outlet-ed.
- Пользовательский метод 'doubleTapped' для события двойного касания процесса, когда DoubleTabBarController отправляет сообщение.
В DoubleTabBarController
- наследовать UITabBarController с протоколом
- устанавливать жесты (одно касание, двойное касание) с UITapGestureRecognizer при событии viewDidLoad
- tap1, tap2, tap3, tap4 для действий касания.
То, что я пытался (и не удалось).
- Комментарий requireGestureRecognizerToFail между одиночным / двойным касанием.Не работает.
- Комментарий всего распознавания двойного касания.Работает при прокрутке.Но нет события двойного нажатия.
- Дважды нажмите на другую вкладку при прокрутке.Это делает отправку одного нажатия во время прокрутки.Но это тоже не может быть решением.
- (Поскольку я сомневаюсь, что при установке жеста возникают проблемы с фокусировкой - двойное касание сработало одновременно!) Прокомментируйте двойное касание и замените его тройным касанием.Событие тройного нажатия отправлено в нужное время.Но событие одиночного касания по умолчанию не сработало в нужное время - например, добавлен жест двойного касания.
Мой код.
DoubleTabBarController.h
#import <UIKit/UIKit.h>
@interface DoubleTabBarController : UITabBarController <UITabBarDelegate>
- (id)init;
@end
DoubleTabBarController.m (часть)
- (void)viewDidLoad {
[super viewDidLoad];
UITapGestureRecognizer *singleTap = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap1)] autorelease];
singleTap.numberOfTapsRequired = 1;
singleTap.numberOfTouchesRequired = 1;
singleTap.cancelsTouchesInView = NO;
UITapGestureRecognizer *doubleTap = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap2)] autorelease];
doubleTap.numberOfTapsRequired = 2;
doubleTap.numberOfTouchesRequired = 1;
doubleTap.cancelsTouchesInView = NO;
[singleTap requireGestureRecognizerToFail:doubleTap];
[[self tabBar] addGestureRecognizer:singleTap];
[[self tabBar] addGestureRecognizer:doubleTap];
}
Текущее состояние
Я потерял свое направление для решения этой проблемы.Пожалуйста, помогите мне:)
пс.Я столкнулся с той же проблемой на iOS 4.3, но она была решена удалением протокола UITabBarControllerDelegate.И это произошло снова в iOS 5.0: (