ios – UIPageViewController以编程方式进行中间转换?

ios – UIPageViewController以编程方式进行中间转换?,第1张

概述我有一个带有n(n>>> 2)页面的UIPageViewController.第一页是黄色,第二页是蓝色.当我从一个页面拖动到另一个页面时,我得到了一个很好的中间状态动画,如下图所示: 我尝试以编程方式将页面从一个页面转换到另一个页面.我得到了UIScrollView: for view:UIView in self.view.subviews as! [UIView] { if view.i 我有一个带有n(n>>> 2)页面的UIPageVIEwController.第一页是黄色,第二页是蓝色.当我从一个页面拖动到另一个页面时,我得到了一个很好的中间状态动画,如下图所示:

我尝试以编程方式将页面从一个页面转换到另一个页面.我得到了UIScrollVIEw:

for vIEw:UIVIEw in self.vIEw.subvIEws as! [UIVIEw] {  if vIEw.isKindOfClass(UIScrollVIEw.self) {    self.pageScrollVIEw = vIEw as? UIScrollVIEw  }}

我像这样设置滚动位置:

self.pageScrollVIEw!.contentOffset.x = screenWIDth - deltaX

结果如下:

滚动位置已更新,但未加载下一个视图.这就是为什么右侧有一个白色区域.我知道我可以使用setVIEwControllers设置下一页,但这将显示整个下一页.我想要的是以编程方式显示下一页仅部分,就像我拖动一样.

我知道这可以做到,因为Tinder应用程序已经这样做了.当您在标题上进行平移手势时,页面视图控制器会切换页面非常模糊.

如何以编程方式模拟页面中间转换?

解决方法 你不能在被分页的东西中途停下来.只要拖动手势处于活动状态,就有可能,但只要抬起手指并停止手势,控件就会显示下一个UIVIEwController或已经显示的那个.

使用带有动画的true的setVIEwControllers:true将从当前的UIVIEwController平滑过渡到下一个,就像你用手指拖动视图一样:

.setVIEwControllers([allVIEwControllers[1]],direction: .Forward,animated: true,completion: nil)

如果你想要更自定义的东西,你可能需要使用UIScrollVIEw而不是UIPageVIEwController,并自己设置内容.将pagingEnabled设置为true将使其行为类似于具有Scroll转换的UIPageVIEwController,但您也可以保持禁用分页并使用setContentOffset:(contentOffset,animated)的组合使其滚动到您喜欢的和委托scrollVIEwWillEndDragging 总结

以上是内存溢出为你收集整理的ios – UIPageViewController以编程方式进行中间转换?全部内容,希望文章能够帮你解决ios – UIPageViewController以编程方式进行中间转换?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1045190.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存