如何快速制作水平滚动段

时间:2021-01-05 09:45:37

标签: swift uikit

当我们水平滚动段时,段和关于视图控制器应该水平滚动

为此,我尝试了 SJSegmentedScrollView

我已经安装了 cocoapod 并添加了以下代码:

代码:但这里甚至没有出现段......我错在哪里......如何水平添加段和视图控制器

或者是否有任何其他第三方库用于细分,请在此处提供帮助

import UIKit
import SJSegmentedScrollView

class SegmentViewController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view.
    self.navigationController?.isNavigationBarHidden = true
    if let storyboard = self.storyboard {

    let headerViewController = storyboard
        .instantiateViewController(withIdentifier: "SegmentViewController")

    let firstViewController = storyboard
        .instantiateViewController(withIdentifier: "FirstTableViewController")
    firstViewController.title = "First"

    let secondViewController = storyboard
        .instantiateViewController(withIdentifier: "SecondTableViewController")
    secondViewController.title = "Second"

    let thirdViewController = storyboard
        .instantiateViewController(withIdentifier: "ThirdTableViewController")
    thirdViewController.title = "Third"
        self.present(thirdViewController, animated: false, completion: nil)
        let segmentedViewController = SJSegmentedViewController(headerViewController: headerViewController,
        segmentControllers: [firstViewController,
            secondViewController,
            thirdViewController])
            
            addChild(segmentedViewController)
            self.view.addSubview(segmentedViewController.view)
            segmentedViewController.view.frame = self.view.bounds
            segmentedViewController.didMove(toParent: self)

    
    }
    
}
}

1 个答案:

答案 0 :(得分:1)

我认为不需要为每个开发都使用第三方框架。首先尝试本地方式。例如,您可以使用 UIKit、UISegmentedControl Apple Document

class ViewController: UIViewController {
  @IBOutlet weak var segmentedControl: UISegmentedControl!
  @IBOutlet weak var textLabel: UILabel!
  override func viewDidLoad() {
    super.viewDidLoad()
  }
  @IBAction func segmentedControlPressed(_ sender: UISegmentedControl) {
    switch segmentedControl.selectedSegmentIndex {
    case 0: textLabel.text = "First";
    case 1: textLabel.text = "Second";
    case 2: textLabel.text = "Third";
    default: break;
    }
  }
}