Ios 以编程方式在UIScrollView中将子视图居中
我看到很多类似的问题,但没有一个能解决我的问题 我正在添加一个Ios 以编程方式在UIScrollView中将子视图居中,ios,swift,uiview,uiscrollview,Ios,Swift,Uiview,Uiscrollview,我看到很多类似的问题,但没有一个能解决我的问题 我正在添加一个UIView作为UIScrollView的子视图。ui视图有3*scrollView.width和3*scrollView.height。因此,我相应地设置了UIScrollView的contentSize。当应用程序启动时,我想在子视图中间的代码> ScReVIEW 窗口,类似这样的东西 内部窗口应该是滚动视图,也是应用程序启动时用户看到的ui视图部分。不管怎样,我都做不到。 滚动视图始终设置为原点(0,0) 是我干的- let m
UIView
作为UIScrollView
的子视图。ui视图
有3*scrollView.width和3*scrollView.height。因此,我相应地设置了UIScrollView
的contentSize
。当应用程序启动时,我想在<代码>子视图中间的代码> ScReVIEW 窗口,类似这样的东西
内部窗口应该是滚动视图
,也是应用程序启动时用户看到的ui视图
部分。不管怎样,我都做不到。
滚动视图始终设置为原点(0,0)
是我干的-
let margins = view.layoutMarginsGuide
scrollView.leftAnchor.constraint(equalTo: margins.leftAnchor).isActive = true
scrollView.rightAnchor.constraint(equalTo: margins.rightAnchor).isActive = true
scrollView.bottomAnchor.constraint(equalTo: margins.bottomAnchor, constant: 0).isActive = true
scrollView.topAnchor.constraint(equalTo: margins.topAnchor).isActive = true
scrollView.center = self.view.center // view is the base view of which scrollView is a subview of.
subView.leftAnchor.constraint(equalTo: scrollView.leftAnchor, constant: -1*scrollView.frame.width)
subView.topAnchor.constraint(equalTo: scrollView.topAnchor, constant: -1*scrollView.frame.height)
据我所知,你有uicrollview
和UIView
在里面,滚动内容大小为视图高度/宽度的3倍,当应用程序启动时,你需要滚动中心
在这种情况下,我尝试使用故事板尽可能多地关闭,所以我所做的
添加了带约束的UIScrollView
顶部
空格到SuperView,尾部
到SuperView,前导
和底部
到SuperView
在UIScrollView
内部添加了带约束的UIView
Top
space到SuperView、training
到SuperView、Leading
和Bottom
到SuperView,其高度和宽度等于UIView(我们在UIScrollView顶部的视图)
乘以3倍
这都是故事板上的内容,现在我们只需要为UIScrollView
设置setContentOffset
,如下所示
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
let contentOffsetX = (scrollView.contentSize.width/2) - (view.bounds.width/2)
let contentOffsetY = (scrollView.contentSize.height/2) - (view.bounds.height/2)
scrollView.setContentOffset(CGPoint(x: contentOffsetX, y: contentOffsetY), animated: true)
}
我们完成了。我希望它能帮助你。
您还可以在以下位置找到代码库:
愉快的学习。据我了解,你有uicrollview
和UIView
在里面,滚动内容大小为视图高度/宽度的3倍,当应用程序启动时,你需要滚动中心
在这种情况下,我尝试使用故事板尽可能多地关闭,所以我所做的
添加了带约束的UIScrollView
顶部
空格到SuperView,尾部
到SuperView,前导
和底部
到SuperView
在UIScrollView
内部添加了带约束的UIView
Top
space到SuperView、training
到SuperView、Leading
和Bottom
到SuperView,其高度和宽度等于UIView(我们在UIScrollView顶部的视图)
乘以3倍
这都是故事板上的内容,现在我们只需要为UIScrollView
设置setContentOffset
,如下所示
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
let contentOffsetX = (scrollView.contentSize.width/2) - (view.bounds.width/2)
let contentOffsetY = (scrollView.contentSize.height/2) - (view.bounds.height/2)
scrollView.setContentOffset(CGPoint(x: contentOffsetX, y: contentOffsetY), animated: true)
}
我们完成了。我希望它能帮助你。
您还可以在以下位置找到代码库:
学习愉快。啊,谢谢你。我需要在scrollView上正确设置contentOffset。这就解决了我的问题。非常感谢您花时间在github上发布代码。啊,谢谢。我需要在scrollView上正确设置contentOffset。这就解决了我的问题。非常感谢您花时间在github上发布代码。