如何将 UIScrollView 移动一帧的宽度? (Xcode,斯威夫特)

Posted

技术标签:

【中文标题】如何将 UIScrollView 移动一帧的宽度? (Xcode,斯威夫特)【英文标题】:How to shift UIScrollView by one frame's width? (Xcode, Swift) 【发布时间】:2018-11-16 22:06:18 【问题描述】:

我正在尝试制作一个使用类似于 Snapchat 的功能的应用,其中用户可以在水平相邻的 3 个帧之间滑动。一切似乎都在工作,但默认情况下,scrollView 会在最左侧显示视图,并允许用户向右滑动两次以到达最右侧的视图。我希望滚动视图首先显示中间视图,允许用户向左或向右滑动,但似乎无法得到这个。提前致谢。

class ViewController: UIViewController 

@IBOutlet weak var scrollView: UIScrollView!

override func viewDidLoad() 
    super.viewDidLoad()

    scrollView.frame = self.view.bounds

    let ViewOne = HomeViewController(nibName: "HomeViewController", bundle: nil)
    ViewOne.view.frame = self.view.bounds

    let ViewTwo = ExploreViewController(nibName: "ExploreViewController", bundle: nil)
    ViewTwo.view.frame = self.view.bounds

    let ViewThree = ProfileViewController(nibName: "ProfileViewController", bundle: nil)
    ViewThree.view.frame = self.view.bounds

    self.addChildViewController(ViewOne)
    self.scrollView.addSubview(ViewOne.view)
    ViewOne.didMove(toParentViewController: self)

    self.addChildViewController(ViewTwo)
    self.scrollView.addSubview(ViewTwo.view)
    ViewTwo.didMove(toParentViewController: self)

    self.addChildViewController(ViewThree)
    self.scrollView.addSubview(ViewThree.view)
    ViewThree.didMove(toParentViewController: self)

    ViewTwo.view.center = CGPoint(x: ViewOne.view.center.x + self.view.frame.width, y: self.view.center.y)
    ViewThree.view.center = CGPoint(x: ViewOne.view.center.x - self.view.frame.width, y: self.view.center.y)

    scrollView.contentSize = CGSize(width: self.view.frame.width * 3, height: self.view.frame.height)
    print(self.view.center.x)


【问题讨论】:

您需要将contentOffset 设置为所需的值。 【参考方案1】:
scrollView.contentOffset = CGPoint(x: self.view.bounds.width, y: 0)

这会使滚动视图偏移等于视图宽度的量

【讨论】:

以上是关于如何将 UIScrollView 移动一帧的宽度? (Xcode,斯威夫特)的主要内容,如果未能解决你的问题,请参考以下文章

怎么用PR软件将视频导出成一帧帧的图片?

如何从视频中提取某一帧的图像

如何将avi格式的视频文件利用matlab提取成一帧一帧的序列图像?

将多于一帧的影片剪辑添加到另一帧的下方到 VBOx 容器?

python小工具------将H264/H265码流文件转为一帧一帧的JPEG文件

python小工具------将H264/H265码流文件转为一帧一帧的JPEG文件