我的标签栏控制器中有三个标签,我想在这些标签之间切换,就像tinder使用手指触摸切换标签。我已经使用UISwipeGestureRecognizer
做了它,但它与Tinder(约会应用程序)的滑动不完全相同。 我在Tabbar controller
之一上添加了UISwipeGestureRecognizer
,然后添加了更改tabbar选定索引的功能。但动画不受手指触摸的控制。我想要通过手指触摸来控制滑动。使用手指划动在标签栏控制器中更改标签
回答
我有点晚了,但我发现我的ANS -
我已经创建了4个UIviewcontrollers编程,然后 创建它的一个阵列。
var views = [CareTeamTableViewController(),VFCChatQViewController(), NewAccountViewController(), ShareViewController()]
然后我在我的主要的UIViewController
private func initMainScroll() {
scrollView = UIScrollView.init()
scrollView?.delegate = self
scrollView?.showsHorizontalScrollIndicator = false
scrollView?.isPagingEnabled = true
self.view.addSubview(scrollView!)
}
增加了滚动视图,然后添加视图阵列,如:
func setupScrollView(complete:()->()) {
scrollView?.frame = views.first!.view.frame
scrollView?.contentSize = CGSize(width: CGFloat(views.count) * UIScreen.main.bounds.width, height: 0)
_ = views.map({ addViewToScrollView($0) })
_ = views.map({ $0.view.frame.origin = CGPoint(x: CGFloat(views.index(of: $0)!) * UIScreen.main.bounds.width, y: 0) })
complete()
}
func addViewToScrollView(_ viewController: UIViewController) {
scrollView?.addSubview(viewController.view)
viewController.willMove(toParentViewController: self)
addChildViewController(viewController)
}
我认为最好的方法是将所有标签页的视图放在UIScrollView
。你把它们放在一起。
在您的tabbarController
中实现滚动视图委托方法。 你可能需要scrollViewDidEndScrollingAnimation
和scrollViewDidEndDecelerating
知道上查看您是当用户停止滚动,像这样:
let page_width=UIScreen.main.bounds.width
let page=Int(floor((scrollView.contentOffset.x-page_width/2)/page_width)+1)
在这里,我想每个选项卡视图中的尺寸与屏幕相同。
这可以使用'UIPanGestureRecognizer'完成吗? –
您不需要带有滚动视图的UIPanGestureRecognizer。 –
我在每个选项卡中有三个不同的'UIViewControllers'。因此将它们添加到'UIScrollView'将会很困难。 –
- 1. 标签栏控制器内的标签栏控制器
- 2. 标签栏控制器
- 3. 多标签栏控制器?
- 4. 标签栏控制器
- 5. 用控制器的ajax更改标签?
- 6. 从标签栏控制器启动segue
- 7. ios标签栏控制器动画
- 8. 视图控制器改变标签栏图标和动作
- 9. 标签栏控制器和标签栏有什么区别?
- 10. iPhone/iPad/iOS:棘手使用标签栏控制器
- 11. 在一个标签栏控制器
- 12. 如何更改标签指示器在操作栏中的下划线高度
- 13. 在swift中添加没有标签栏控制器的标签栏
- 14. 在标签栏控制器上使用导航栏
- 15. ASP.Net MVC控制标签栏
- 16. 如何更改标签栏项目控制器的触摸?
- 17. 如何更改标签栏控制器内导航项的titleview?
- 18. 在标签栏应用程序中使用导航控制器。
- 19. 代码在iphone中使用标签栏控制器
- 20. 更改标签栏中选项卡的目标视图控制器
- 21. 关闭标签栏控制器
- 22. 卸载标签栏控制器
- 23. VIPER架构:标签栏控制器
- 24. 标签栏控制器蓝色覆盖
- 25. 从标签栏控制器分支?
- 26. iPhone:视图控制器的标签栏
- 27. 标签栏控制器..项目名称
- 28. 标签栏控制器不可访问
- 29. Segue公司到标签栏控制器
- 30. 在导航控制器中使用标签栏控制器的问题
您是否尝试过'UIPanGestureRecognizer'? – SLearner
你可以建议我'TabBarControllerAnimation'方法来改变'SelectedIndex'使用手指触摸和刷卡? –