使用滚动视图和页面控制?

Posted

技术标签:

【中文标题】使用滚动视图和页面控制?【英文标题】:Use scrollview and pageconrol? 【发布时间】:2014-06-17 21:12:09 【问题描述】:

Swift 中,我创建了一个滚动视图,它可以工作。它是水平的,用于“教程”页面。对象出现在它上面很好。它滚动良好。它有页面。但是,我希望页面在UIPageControl 上显示当前页面。这是我的全部代码。目前,页面控件仅在我在视图上的页面控件上滑动某个方向时才起作用。然后它会改变它。它确实移动屏幕上的对象。滚动视图会滚动,但不会更改 UIPageControl。

代码:

var tutorialScrollView = UIScrollView()
var pageCounterForScrollView = UIPageControl()
tutorialScrollView.pagingEnabled = true
tutorialScrollView.bounces = true
tutorialScrollView.frame = CGRectMake(0, 0, 320, 568)
tutorialScrollView.userInteractionEnabled = true
tutorialScrollView.contentSize = CGSizeMake(1280, 568)
tutorialScrollView.showsHorizontalScrollIndicator = false

pageCounterForScrollView.numberOfPages = 3
pageCounterForScrollView.frame = CGRectMake(0, 0, 500, 100)
pageCounterForScrollView.center = CGPointMake(160, 528)
self.view.addSubview(scrollViewBGView)
self.view.addSubview(tutorialScrollView)
self.view.addSubview(pageCounterForScrollView)
self.tutorialScrollView.addSubview(reactFastSVLabel)
self.tutorialScrollView.addSubview(changingDotSVView)
self.tutorialScrollView.addSubview(learnPlaySVLabel)
self.tutorialScrollView.addSubview(simpleSVLabel)
self.tutorialScrollView.addSubview(oneColorSVImageView)
self.tutorialScrollView.addSubview(justDoThisSVLabel)

func scrollViewDidEndDecelerating(scrollView: UIScrollView) 
    var newOffset: CGFloat = tutorialScrollView.contentOffset.x
    var newPage = Int(newOffset/tutorialScrollView.frame.size.width)
    pageCounterForScrollView.currentPage = newPage

【问题讨论】:

【参考方案1】:

我没有在 swift 中完成此操作,但我已在 Objective-C 中完成此操作

- (void)scrollViewDidScroll:(UIScrollView *)aScrollView

CGFloat pageWidth = self.horizontalMenu.bounds.size.width ;
     float fractionalPage = self.horizontalMenu.contentOffset.x / pageWidth ;
NSInteger nearestNumber = lround(fractionalPage) ;

if (self.pageControl.currentPage != nearestNumber)

    self.pageControl.currentPage = nearestNumber ;
    NSLog(@"%d",nearestNumber);
    // if we are dragging, we want to update the page control directly during the drag
    if (self.horizontalMenu.dragging)
        [self.pageControl updateCurrentPageDisplay] ;


【讨论】:

以上是关于使用滚动视图和页面控制?的主要内容,如果未能解决你的问题,请参考以下文章

在教程屏幕上使用滚动视图和页面控制器

不同控制器的页面控制或滚动视图

滚动视图滚动时页面控制不改变

有没有办法在结合页面控制的滚动视图中自动布局图像?

iOS 双视图控制器在页面上一起滚动

具有滚动效果的页面视图控制器与启用分页的 UIScrollView