Swift_ScrollVoew&&PageControl
2016-07-19 14:53
344 查看
//
// ViewController.swift
// Swift_ScrollView
//
// Created by HarrySun on 16/7/19.
// Copyright © 2016年 Mobby. All rights reserved.
//
import UIKit
class ViewController:
UIViewController,UIScrollViewDelegate {
let numOfPages =
3
let pageWidth =
414
let pageHeight =
600
var scrollView =
UIScrollView()
var pageControl =
UIPageControl()
override
func viewDidLoad(){
super.viewDidLoad()
//scrollView的初始化
scrollView.frame =
self.view.bounds
//为了让内容横向滚动,设置横向内容宽度为3个页面的宽度总和
scrollView.contentSize=CGSizeMake(CGFloat(pageWidth*numOfPages),
CGFloat(pageHeight))
scrollView.pagingEnabled =
true
scrollView.showsHorizontalScrollIndicator =
false
scrollView.showsVerticalScrollIndicator =
false
scrollView.scrollsToTop =
false
scrollView.minimumZoomScale=0.1
//最小比例
scrollView.maximumZoomScale=3
//最大比例
scrollView.bouncesZoom =
false
scrollView.delegate=self
//添加子页面(子页面在博客下方。)
for i
in 0..<numOfPages{
let myViewController =
MyViewController(number:(i+1))
myViewController.view.frame =
CGRectMake(CGFloat(pageWidth*i),
CGFloat(0),
CGFloat(pageWidth),CGFloat(pageHeight))
let imageView =
UIImageView()
imageView.frame =
CGRectMake(0,
0,CGFloat(pageWidth),CGFloat(pageHeight))
imageView.image =
UIImage(named: "1.jpg")
imageView.userInteractionEnabled =
true
imageView.tag = i +
100
myViewController.view .addSubview(imageView)
scrollView.addSubview(myViewController.view)
}
self.view.addSubview(scrollView)
pageControl.frame =
CGRectMake(CGFloat(pageWidth /
2 - 50),
CGFloat(pageHeight -
50), CGFloat(100),
CGFloat(40))
pageControl.backgroundColor =
UIColor.redColor();
pageControl.numberOfPages =
numOfPages
pageControl.currentPage =
0
pageControl.addTarget(self, action:
#selector(pageChanged(_:)), forControlEvents:
UIControlEvents.ValueChanged)
// 设置点击事件
self.view.addSubview(pageControl)
}
override
func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
//UIScrollViewDelegate方法,每次滚动结束后调用
func scrollViewDidEndDecelerating(scrollView:
UIScrollView) {
print("停止滑动")
//通过scrollView内容的偏移计算当前显示的是第几页
let page =
Int(scrollView.contentOffset.x / scrollView.frame.size.width)
//设置pageController的当前页
pageControl.currentPage = page
}
func scrollViewDidScroll(scrollView:
UIScrollView) {
print("滑动中")
}
func scrollViewDidEndDragging(scrollView:
UIScrollView, willDecelerate decelerate:
Bool) {
print("停止拖拽")
}
//点击页控件时事件处理
func pageChanged(sender:UIPageControl) {
//根据点击的页数,计算scrollView需要显示的偏移量
var frame =
scrollView.frame
frame.origin.x = frame.size.width
* CGFloat(sender.currentPage)
frame.origin.y =
0
//展现当前页面内容
scrollView.scrollRectToVisible(frame, animated:true)
}
func viewForZoomingInScrollView(scrollView:
UIScrollView) ->
UIView? {
return
self.view.viewWithTag(101)
}
func scrollViewWillBeginDragging(scrollView:
UIScrollView) {
print("开始拖拽视图")
}
func scrollViewWillBeginDecelerating(scrollView:
UIScrollView) {
print("将开始降速时")
}
func scrollViewDidEndScrollingAnimation(scrollView:
UIScrollView) {
print("滚动动画停止时执行,代码改变时触发,也就是setContentOffset改变时")
}
func scrollViewDidEndZooming(scrollView:
UIScrollView, withView view:
UIView?, atScale scale:
CGFloat) {
print("完成放大缩小时调用")
}
}
-------------------------------------------------------------------------------------------------------------
//
// MyViewController.swift
// Swift
//
// Created by HarrySun on 16/7/19.
// Copyright © 2016年 Mobby. All rights reserved.
//
import UIKit
class MyViewController:
UIViewController {
var number:Int!
let colorMap = [
1:UIColor.blackColor(),
2:UIColor.orangeColor(),
3:UIColor.blueColor()
]
init(number initNumber:Int){
self.number = initNumber
super.init(nibName:
nil, bundle: nil)
}
required
init?(coder aDecoder:
NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override
func viewDidLoad(){
let numberLabel =
UILabel(frame:CGRectMake(130,50,50,30))
numberLabel.text =
"第\(number)页"
numberLabel.textColor =
UIColor.whiteColor()
self.view.addSubview(numberLabel)
self.view.backgroundColor =
colorMap[number]
}
}
// ViewController.swift
// Swift_ScrollView
//
// Created by HarrySun on 16/7/19.
// Copyright © 2016年 Mobby. All rights reserved.
//
import UIKit
class ViewController:
UIViewController,UIScrollViewDelegate {
let numOfPages =
3
let pageWidth =
414
let pageHeight =
600
var scrollView =
UIScrollView()
var pageControl =
UIPageControl()
override
func viewDidLoad(){
super.viewDidLoad()
//scrollView的初始化
scrollView.frame =
self.view.bounds
//为了让内容横向滚动,设置横向内容宽度为3个页面的宽度总和
scrollView.contentSize=CGSizeMake(CGFloat(pageWidth*numOfPages),
CGFloat(pageHeight))
scrollView.pagingEnabled =
true
scrollView.showsHorizontalScrollIndicator =
false
scrollView.showsVerticalScrollIndicator =
false
scrollView.scrollsToTop =
false
scrollView.minimumZoomScale=0.1
//最小比例
scrollView.maximumZoomScale=3
//最大比例
scrollView.bouncesZoom =
false
scrollView.delegate=self
//添加子页面(子页面在博客下方。)
for i
in 0..<numOfPages{
let myViewController =
MyViewController(number:(i+1))
myViewController.view.frame =
CGRectMake(CGFloat(pageWidth*i),
CGFloat(0),
CGFloat(pageWidth),CGFloat(pageHeight))
let imageView =
UIImageView()
imageView.frame =
CGRectMake(0,
0,CGFloat(pageWidth),CGFloat(pageHeight))
imageView.image =
UIImage(named: "1.jpg")
imageView.userInteractionEnabled =
true
imageView.tag = i +
100
myViewController.view .addSubview(imageView)
scrollView.addSubview(myViewController.view)
}
self.view.addSubview(scrollView)
pageControl.frame =
CGRectMake(CGFloat(pageWidth /
2 - 50),
CGFloat(pageHeight -
50), CGFloat(100),
CGFloat(40))
pageControl.backgroundColor =
UIColor.redColor();
pageControl.numberOfPages =
numOfPages
pageControl.currentPage =
0
pageControl.addTarget(self, action:
#selector(pageChanged(_:)), forControlEvents:
UIControlEvents.ValueChanged)
// 设置点击事件
self.view.addSubview(pageControl)
}
override
func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
//UIScrollViewDelegate方法,每次滚动结束后调用
func scrollViewDidEndDecelerating(scrollView:
UIScrollView) {
print("停止滑动")
//通过scrollView内容的偏移计算当前显示的是第几页
let page =
Int(scrollView.contentOffset.x / scrollView.frame.size.width)
//设置pageController的当前页
pageControl.currentPage = page
}
func scrollViewDidScroll(scrollView:
UIScrollView) {
print("滑动中")
}
func scrollViewDidEndDragging(scrollView:
UIScrollView, willDecelerate decelerate:
Bool) {
print("停止拖拽")
}
//点击页控件时事件处理
func pageChanged(sender:UIPageControl) {
//根据点击的页数,计算scrollView需要显示的偏移量
var frame =
scrollView.frame
frame.origin.x = frame.size.width
* CGFloat(sender.currentPage)
frame.origin.y =
0
//展现当前页面内容
scrollView.scrollRectToVisible(frame, animated:true)
}
func viewForZoomingInScrollView(scrollView:
UIScrollView) ->
UIView? {
return
self.view.viewWithTag(101)
}
func scrollViewWillBeginDragging(scrollView:
UIScrollView) {
print("开始拖拽视图")
}
func scrollViewWillBeginDecelerating(scrollView:
UIScrollView) {
print("将开始降速时")
}
func scrollViewDidEndScrollingAnimation(scrollView:
UIScrollView) {
print("滚动动画停止时执行,代码改变时触发,也就是setContentOffset改变时")
}
func scrollViewDidEndZooming(scrollView:
UIScrollView, withView view:
UIView?, atScale scale:
CGFloat) {
print("完成放大缩小时调用")
}
}
-------------------------------------------------------------------------------------------------------------
//
// MyViewController.swift
// Swift
//
// Created by HarrySun on 16/7/19.
// Copyright © 2016年 Mobby. All rights reserved.
//
import UIKit
class MyViewController:
UIViewController {
var number:Int!
let colorMap = [
1:UIColor.blackColor(),
2:UIColor.orangeColor(),
3:UIColor.blueColor()
]
init(number initNumber:Int){
self.number = initNumber
super.init(nibName:
nil, bundle: nil)
}
required
init?(coder aDecoder:
NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override
func viewDidLoad(){
let numberLabel =
UILabel(frame:CGRectMake(130,50,50,30))
numberLabel.text =
"第\(number)页"
numberLabel.textColor =
UIColor.whiteColor()
self.view.addSubview(numberLabel)
self.view.backgroundColor =
colorMap[number]
}
}
相关文章推荐
- Apple Swift学习教程
- 介绍 Fedora 上的 Swift
- ScrollView滚动条颜色的设置方法
- 刷新Activity中的scrollview示例(局部ui刷新)
- Android之ScrollView嵌套ListView和GridView冲突的解决方法
- Swift中实现点击、双击、捏、旋转、拖动、划动、长按手势的类和方法介绍
- Swift自定义iOS中的TabBarController并为其添加动画
- Swift编程中的泛型解析
- Swift中定义二维数组的方法及遍历方法示例
- Swift实现Selection Sort选择排序算法的实例讲解
- Android实现两个ScrollView互相联动的同步滚动效果代码
- 完美解决EditText和ScrollView的滚动冲突(下)
- Android开发之机顶盒上gridview和ScrollView的使用详解
- Android控件之ScrollView用法实例分析
- android 实现ScrollView自动滚动的实例代码
- Android ScrollView只能添加一个子控件问题解决方法
- Android编程开发之ScrollView嵌套GridView的方法
- Android中实现监听ScrollView滑动事件
- Android ScrollView使用代码示例