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计时的使用)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)