У меня есть контроллер TabBar с добавленным 3 ViewController. Теперь все вкладки переключаются должным образом, когда мы нажимаем на вкладку. Я хочу, та же самая функциональность при прокрутке TabBar слева направо или справа налево. Так что, пожалуйста, дайте мне предложение. Как я могу это сделать?Swipe viewControllers на контроллере TabBar в iOS
1
A
ответ
1
Вы можете добавить UISwipeGestureRecognizer
к вашему UITabBar
и обрабатывать салфетки жесты, установив в соответствии с направлением жеста
- (void)viewDidLoad {
[super viewDidLoad];
UISwipeGestureRecognizer *leftToRightGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(leftToRightSwipeDidFire)];
leftToRightGesture.direction = UISwipeGestureRecognizerDirectionRight;
[self.tabBarController.tabBar addGestureRecognizer:leftToRightGesture];
UISwipeGestureRecognizer *rightToLeftGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(rightToLeftSwipeDidFire)];
rightToLeftGesture.direction = UISwipeGestureRecognizerDirectionLeft;
[self.tabBarController.tabBar addGestureRecognizer:rightToLeftGesture];
}
- (void)leftToRightSwipeDidFire {
UITabBar *tabBar = self.tabBarController.tabBar;
NSInteger index = [tabBar.items indexOfObject:tabBar.selectedItem];
if (index > 0) {
self.tabBarController.selectedIndex = index - 1;
} else {
return;
}
}
- (void)rightToLeftSwipeDidFire {
UITabBar *tabBar = self.tabBarController.tabBar;
NSInteger index = [tabBar.items indexOfObject:tabBar.selectedItem];
if (index < tabBar.items.count - 1) {
self.tabBarController.selectedIndex = index + 1;
} else {
return;
}
}
1
Добавить 2 (один для левого и других правого) салфетки жест для просмотра каждого контроллера представления и сделать IBAction
- (IBAction)swipeRightAction:(UIGestureRecognizer *)sender {
UISwipeGestureRecognizerDirection directions=[(UISwipeGestureRecognizer *)sender direction];
switch (directions) {
case UISwipeGestureRecognizerDirectionRight:
indexNumberItem--;
break;
case UISwipeGestureRecognizerDirectionLeft:
indexNumberItem++;
break;
default:
break;
}
if (indexNumberItem<3) {
indexNumberItem=0;
}
if (indexNumberItem>=3) {
indexNumberItem=2;
}
self.tabBarController.selectedViewController= [self.tabBarController.viewControllers objectAtIndex:indexNumberItem];
}
0
Весь ваш ребенок ViewControllers может наследовать от класса, который выполняет весь тяжелый подъем для тебя.
Это, как я сделал это
class SwipableTabVC : UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let left = UISwipeGestureRecognizer(target: self, action: #selector(swipeLeft))
left.direction = .left
self.view.addGestureRecognizer(left)
let right = UISwipeGestureRecognizer(target: self, action: #selector(swipeRight))
right.direction = .right
self.view.addGestureRecognizer(right)
}
func swipeLeft() {
let total = self.tabBarController!.viewControllers!.count - 1
tabBarController!.selectedIndex = min(total, tabBarController!.selectedIndex + 1)
}
func swipeRight() {
tabBarController!.selectedIndex = max(0, tabBarController!.selectedIndex - 1)
}
}
Теперь все viewcontrollers, которые являются частью UITabBarController могут наследовать от SwipableTabVC
вместо UIViewController.
Смежные вопросы
- 1. Открытие подменю в контроллере TabBar?
- 2. iPhone: Как передавать данные между несколькими Viewcontrollers в TabBar App
- 3. tabBar viewControllers in IB: отправить пользовательский init?
- 4. Использование контроллера навигации в контроллере TabBar Iphone 6+ IOS 8.3
- 5. TabBar ViewControllers для отображения первого второго элемента
- 6. проблемы в TabBar контроллере с более чем пяти пунктов TabBar
- 7. Изменение VIewControllers останавливает анимацию
- 8. iOS pageviewcontroller disable swipe
- 9. IOS-: навигация между viewControllers
- 10. iOS отклоняет цепочку ViewControllers
- 11. CNContactPickerViewController на контроллере панели вкладок
- 12. Как перезагрузить представление в контроллере TabBar?
- 13. iOS ViewControllers Flow
- 14. Как управлять viewControllers в iOS
- 15. SplitView с несколькими ViewControllers - Storyboards - iOS
- 16. Выбор элемента Tabbar в iOS
- 17. Как обратно в TabBar viewcontrollers specifice индекса представления после действия
- 18. Как связать созданные вручную ViewControllers в приложении TabBar
- 19. TabBar остается скрытым, несмотря на настройку tabbar.hidden = НЕТ в контроллере
- 20. IOS: добавление viewcontroller в пользовательский TabBar в ios
- 21. Присутствовать сразу два или более ViewControllers IOS
- 22. IOS TabBar не работаю с нажимным Segue
- 23. Изменить TabBar color
- 24. Поместите кнопку, подобную instagram на iOS TabBar
- 25. Как создать верхний TabBar на iOS?
- 26. Добавление viewcontrollers в scrollview ios swift
- 27. IOS - обмен данными между ViewControllers
- 28. Внутри TabBar viewcontrollers Панель навигации изменения не работает с раскадровки
- 29. iOS C# Разработка с ViewControllers
- 30. Swipe Gesture with Object IOS
Я попробовал, но все еще не работает –
Вы правы, я забыл, что нам нужно управлять UITabBarController вместо панели вкладок. См. Обновленный ответ –
Я думаю, что это не обнаружение моего жеста –