swift中UIScrollView的使用(结合pageControl,timer计时的使用)

swift中UIScrollView的使用(结合pageControl,timer计时的使用),第1张

概述github学习地址:https://github.com/potato512/SYSwiftLearning 效果图 关键源码 func setUI(){ self.setScrollViewUI() self.setPageControlUI()} func setScrollViewUI(){ self.mainScrollView =

github学习地址:https://github.com/potato512/SYSwiftLearning

效果图


关键源码

func setUI(){        self.setScrollVIEwUI()        self.setPageControlUI()}
func setScrollVIEwUI(){        self.mainScrollVIEw = UIScrollVIEw(frame: CGRectMake(0.0,0.0,CGRectGetWIDth(self.vIEw.bounds),200.0))                // 添加到父视图        self.vIEw.addSubvIEw(self.mainScrollVIEw)                // 添加子视图label        var originX:CGfloat = 0.0        for number in 1...10        {            let label = UILabel(frame: CGRectMake(originX,CGRectGetWIDth(self.mainScrollVIEw.bounds),CGRectGetHeight(self.mainScrollVIEw.bounds)))            self.mainScrollVIEw.addSubvIEw(label)            label.backgroundcolor = UIcolor(red: CGfloat(CGfloat(random()) / CGfloat(RAND_MAX)),green: CGfloat(CGfloat(random()) / CGfloat(RAND_MAX)),blue: CGfloat(CGfloat(random()) / CGfloat(RAND_MAX)),Alpha: 1.0)            label.textAlignment = .Center            label.text = String(format: "scrollVIEw add 第 %ld 个 label",arguments: [number]);                        originX = (CGRectGetMinX(label.frame) + CGRectGetWIDth(label.frame))        }                // 背景颜色        self.mainScrollVIEw.backgroundcolor = UIcolor(red: CGfloat(CGfloat(random()) / CGfloat(RAND_MAX)),Alpha: 1.0)        // 自适应父视图        // self.mainScrollVIEw.autoresizingMask = UIVIEwautoresizing.FlexibleHeight        // 其他属性        self.mainScrollVIEw.scrollEnabled = true // 可以上下滚动        self.mainScrollVIEw.scrollsTotop = true // 点击状态栏时,可以滚动回顶端        self.mainScrollVIEw.bounces = true // 在最顶端或最底端时,仍然可以滚动,且释放后有动画返回效果        mainScrollVIEw.pagingEnabled = true // 分页显示效果        mainScrollVIEw.showsHorizontalScrollindicator = true // 显示水平滚动条        mainScrollVIEw.showsverticalScrollindicator = true // 显示垂直滚动条        mainScrollVIEw.indicatorStyle = UIScrollVIEwIndicatorStyle.White // 滑动条的样式        // 设置内容大小        self.mainScrollVIEw.contentSize = CGSizeMake(originX,200.0)                // 代理        self.mainScrollVIEw.delegate = self}
func setPageControlUI(){        self.mainPageControl = UIPageControl(frame: CGRectMake((CGRectGetWIDth(self.vIEw.bounds) - 200.0) / 2,(CGRectGetHeight(self.mainScrollVIEw.bounds) - 20.0 - 10.0),200.0,20.0))        // 添加到父视图        self.vIEw.addSubvIEw(self.mainPageControl)        // 背景颜色        self.mainPageControl.backgroundcolor = UIcolor.lightGraycolor()                // 其他属性设置        self.mainPageControl.numberOfPages = 10 // 总页数        self.mainPageControl.currentPage = 0 // 当前页数,默认为0,即第一个,实际数量是0~n-1        self.mainPageControl.pageIndicatorTintcolor = UIcolor.yellowcolor() // 非当前页颜色        self.mainPageControl.currentPageIndicatorTintcolor = UIcolor.redcolor() // 当前页颜色}
// MARK: - uiscrollviewdelegate    func scrollVIEwWillBeginDragging(scrollVIEw: UIScrollVIEw){        print("1 scrollVIEwWillBeginDragging")}    func scrollVIEwDIDScroll(scrollVIEw: UIScrollVIEw){        print("2 scrollVIEwDIDScroll")}func scrollVIEwWillEndDragging(scrollVIEw: UIScrollVIEw,withVeLocity veLocity: CGPoint,targetContentOffset: UnsafeMutablePointer<CGPoint>){        print("3 scrollVIEwWillEndDragging")}    func scrollVIEwDIDEndDragging(scrollVIEw: UIScrollVIEw,willDecelerate decelerate: Bool){        print("4 scrollVIEwDIDEndDragging")}    func scrollVIEwWillBeginDecelerating(scrollVIEw: UIScrollVIEw){        print("5 scrollVIEwWillBeginDecelerating")}func scrollVIEwDIDEndDecelerating(scrollVIEw: UIScrollVIEw){        print("6 scrollVIEwDIDEndDecelerating")                let wIDth = CGRectGetWIDth(scrollVIEw.frame)        let offsetX = scrollVIEw.contentOffset.x        let index = offsetX / wIDth        print("当前页是:\(index)")                self.mainPageControl.currentPage = Int(index)}
// MARK: - timer周期    overrIDe func vIEwWillAppear(animated: Bool) {        super.vIEwWillAppear(animated)                self.addTimer()}    overrIDe func vIEwWilldisappear(animated: Bool) {        super.vIEwWilldisappear(animated)        self.removerTimer()}
// MARK: - timer    func addTimer(){        self.mainTimer = NSTimer.scheduledTimerWithTimeInterval(1.0,target: self,selector: Selector("autoShow"),userInfo: nil,repeats: true)    }        func removerTimer()    {        if self.mainTimer != nil        {            self.mainTimer.invalIDate()            self.mainTimer = nil        }}    func autoShow(){        var page = self.mainPageControl.currentPage        if 9 == page        {            page = 0        }        else        {            page++        }                // 设置偏移量        let offsetX = CGfloat(page) * CGRectGetWIDth(self.mainScrollVIEw.frame)        self.mainScrollVIEw.setContentOffset(CGPointMake(offsetX,0.0),animated: true)        self.mainPageControl.currentPage = page}
总结

以上是内存溢出为你收集整理的swift中UIScrollView的使用(结合pageControl,timer计时的使用)全部内容,希望文章能够帮你解决swift中UIScrollView的使用(结合pageControl,timer计时的使用)所遇到的程序开发问题。

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

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

原文地址: https://outofmemory.cn/web/1070616.html

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

发表评论

登录后才能评论

评论列表(0条)

保存