在 Swift 中像 Tab View Controller 一样滑动 uiView
Posted
技术标签:
【中文标题】在 Swift 中像 Tab View Controller 一样滑动 uiView【英文标题】:Swipe a uiView in Swift like Tab View Controller 【发布时间】:2022-01-21 21:14:46 【问题描述】:我想像我们在 SwiftUI 的选项卡视图控制器中使用的那样滑动 uiView,但是在使用情节提要时,如果我们使用选项卡视图控制器,整个屏幕都会被滑动,但我必须只滑动屏幕的一半并在那里执行一些功能。我附上它的屏幕截图以便更好地理解:
我想要这种类型的回应。使用按钮添加新组,我正在添加一个新组,通过滑动我想查看我的辅助组。
【问题讨论】:
到目前为止你尝试过什么?什么不起作用? 您可以使用UICollectionView
代替UIVIew
。它可以从左到右以及从右到左滑动你的UIView
使用页面控件
分享您在视图中添加滑动的代码或完成步骤
@dasdom 我试过标签栏控制器,但它会滑动整个屏幕
【参考方案1】:
let viewsList : [UIViewController] =
let storyBoard = UIStoryboard(name: "Main", bundle: nil)
let vc1 = storyBoard.instantiateViewController(withIdentifier: "FirstViewController")
let vc2 = storyBoard.instantiateViewController(withIdentifier: "SecondViewController")
let vc3 = storyBoard.instantiateViewController(withIdentifier: "ThirdViewController")
return [vc1, vc2, vc3]
()
在 viewDidLoad() 中添加代码
override func viewDidLoad()
super.viewDidLoad()
self.dataSource = self
self.delegate = self
if let firstvc = viewsList.first
self.setViewControllers([firstvc], direction: .forward, animated: true, completion: nil)
检测下一页或上一页。
func pageViewController(pageViewController: UIPageViewController, didFinishAnimating finished: Bool, previousViewControllers: [AnyObject], transitionCompleted completed: Bool)
if completed
if previousIndex < currentIndex // forward
else if previousIndex > currentIndex // reverse
【讨论】:
以上是关于在 Swift 中像 Tab View Controller 一样滑动 uiView的主要内容,如果未能解决你的问题,请参考以下文章
同时切换 Tabs 和重置 Nav 的 View Controllers - Swift iOS