在 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的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 中像在 Java 中一样使用套接字

同时切换 Tabs 和重置 Nav 的 View Controllers - Swift iOS

Swift View Controller 滑动两次问题

Swift 2:从单独的标签栏控制器更新 TableView

如何在 Swift 中呈现 UI 视图并保留 Tab 栏

tab界面实现方式之viewpager+view