Assigning Slider to Horizo​​ntal Paging (like Instagram) - UISlider to UIScrollView

Assigning Slider to Horizontal Paging (like Instagram) - UISlider to UIScrollView

我有一个水平分页,我正在尝试实现一个 UISlider 连接到页面位置,就像 Instagram 在其 Activity 屏幕上所具有的那样。这是我到目前为止所取得的成就。

我在顶部添加了一个 Navigation Bar,在里面添加了 UIView,里面有按钮,UISlider,还有一个 UIScrollView,里面有 2 个 UITableView UIScrollView 的子视图。 (首先,这是一个好方法吗?)

首先,这是我为那些试图实现同样目标的人编写的代码:

class ViewController: UIViewController {

@IBOutlet weak var slider: UISlider!
@IBOutlet weak var scrollView: UIScrollView!

override func viewDidLoad() {
    super.viewDidLoad()

    let V1 : TableView0 = TableView0(nibName: "TableView0", bundle: nil)

    self.addChildViewController(V1)
    self.scrollView.addSubview(V1.view)
    V1.didMoveToParentViewController(self)

    let V2 :TableView1 = TableView1(nibName: "TableView1", bundle: nil)

    self.addChildViewController(V2)
    self.scrollView.addSubview(V2.view)
    V2.didMoveToParentViewController(self)

    var V2Frame : CGRect = V2.view.frame
    V2Frame.origin.x = self.view.frame.width
    V2.view.frame = V2Frame

    self.scrollView.contentSize = CGSizeMake(self.view.frame.width * 2, self.view.frame.height)

}

我想要实现的是,将 UISlider 连接到页面位置(如屏幕底部/滚动位置),就像 Instagram 那样。这是我到目前为止所取得的成就,但我无法弄清楚如何将滑块连接到页面位置:

Instagram 的内容:

我不确定您是否能够使用 UISlider 实现这一目标。 我认为最简单的解决方案是自定义 ScrollView 指示器,Instagram 可能使用了这种方法。您可以参考图书馆:CustomScrollIndicator, JTSScrollIndicator.

您也可以根据scrollView contentOffset创建自定义view(indicator)和position。要获取 contentOffset,请执行 UIScrollViewDelegate 方法:

func scrollViewDidScroll(scrollView: UIScrollView) {
      // use scrollView.contentOffset.x
}