如何将 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,斯威夫特)的主要内容,如果未能解决你的问题,请参考以下文章
如何将avi格式的视频文件利用matlab提取成一帧一帧的序列图像?