Swift_ScrollVoew&&PageControl
来源:互联网 发布:海思自动对焦算法 编辑:程序博客网 时间:2024/05/17 01:20
//
// 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()
overridefunc 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 iin 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)
}
overridefunc 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? {
returnself.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)
}
requiredinit?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
overridefunc 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]
}
}
- Swift_ScrollVoew&&PageControl
- PageControl
- PageControl
- PageControl
- 自定义 pageControl
- delphi PageControl
- iOS-PageControl
- Swift PageControl
- 自定义pageControl
- SdaiBuyWebUI PageControl.cs
- ArcEngine 打印PageControl内容
- PageControl 判断选择项
- PageControl分组框学习。
- delphi PageControl显示窗体
- pagecontrol中显示窗体
- pageControl改变点点颜色
- PageControl上画图片
- delphi PageControl显示窗体
- C语言系统资源控制(getrlimit && setrlimit)
- windowsViaC/C++之设备I/O之文件设备
- firebase基础(一)<推送服务调研>
- 在新linux中使用proc_create_data编写proc
- 兔子与樱花(map+最短路+记录路径)
- Swift_ScrollVoew&&PageControl
- JAVA序列化之RMI远程调用
- 串口重定向
- Adams-Matlab联合仿真Forces反馈的一些注意事项
- Math.round
- Android自定义控件:进度条的四种实现方式
- hdoj1702
- Spring中Quartz的配置
- ToUInt32(string value, int fromBase);