class ViewController: UIViewController, UIScrollViewDelegate{

var scrollView: UIScrollView?

var images: NSMutableArray = NSMutableArray(capacity: 5)

override func viewDidLoad() {

super.viewDidLoad()

//

self.title = "图片浏览"

self.automaticallyAdjustsScrollViewInsets = false

scrollView = UIScrollView(frame: self.view.bounds)

self.view.addSubview(scrollView!)

//不显示滚动条

scrollView?.showsHorizontalScrollIndicator = false

scrollView?.showsVerticalScrollIndicator = false

//设置分页显示

scrollView?.pagingEnabled = true

//设置背景颜色

scrollView?.backgroundColor = UIColor.redColor()

//设置内容视图大小

scrollView?.contentSize = CGSize(width: self.view.frame.size.width * 5, height: self.view.frame.size.height)

scrollView?.delegate = self

//加载图片

for index in 0...5 {

let image: UIImage! = UIImage(named: "\(index).JPG")

let photoScrollView:PhotoScrollView! = PhotoScrollView(frame: CGRect(x: self.view.frame.size.width * CGFloat(index), y: 0, width: self.view.frame.size.width, height: self.view.frame.size.height))

photoScrollView.tag = 200+index

photoScrollView.backgroundColor = UIColor(red:0.4, green: 1, blue: 1, alpha: 1)

photoScrollView.image = image

self.scrollView?.addSubview(photoScrollView)

}

}

func scrollViewDidEndDecelerating(scrollView: UIScrollView)

{

let currentIndex = Int(scrollView.contentOffset.x/self.view.bounds.width)

if currentIndex != index {

let photoScrollView = scrollView.viewWithTag(200+index) as! PhotoScrollView;

//还原比例大小

photoScrollView.setZoomScale(1, animated: false)

}

index = currentIndex

}

var index:NSInteger = 0

}

2.设置img

class PhotoScrollView: UIScrollView, UIScrollViewDelegate {

var _image:UIImage!

var image:UIImage! {

get {

return self._image

}

set {

_image = newValue

let imgView:UIImageView = self.viewWithTag(100) as! UIImageView

imgView.backgroundColor = UIColor.greenColor()

imgView.image = image

}

}

override init(frame: CGRect) {

super.init(frame: frame)

let imgView:UIImageView! = UIImageView(frame: self.bounds)

imgView.tag = 100

self.addSubview(imgView)

//取消滑动条

self.showsHorizontalScrollIndicator = false

self.showsVerticalScrollIndicator = false

self.delegate = self

//设置最大、最小缩放比例

self.maximumZoomScale = 3

self.minimumZoomScale = 1

}

required init?(coder aDecoder: NSCoder) {

super.init(coder: aDecoder)

}

func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {

return self.viewWithTag(100)

}

}

Swift 图片浏览器的更多相关文章

  1. swift项目初体验--教你打造一款个性化图片浏览器(篇幅过大,慎入)

    项目需求:做一个图片浏览器,点击图片查看大图,大图模式下,左右滚动能查看不同的图片. 项目的主要核心技术:图片的弹出和消失动画     项目源代码: Photo-Browser   一.对代码进行重构 ...

  2. iOS Swift WisdomScanKit图片浏览器功能SDK

    iOS Swift WisdomScanKit图片浏览器功能SDK使用 一:简介      WisdomScanKit 由 Swift4.2版编写,完全兼容OC项目调用. WisdomScanKit的 ...

  3. 纯JS打造比QQ空间更强大的图片浏览器-支持拖拽、缩放、过滤、缩略图等

    在线演示地址(打开网页后,点击商家图册): http://www.sport7.cn/cc/jiangnan/football5.html 先看一看效果图: 该图片浏览器实现的功能如下: 1. 鼠标滚 ...

  4. iOS开发系列--无限循环的图片浏览器

    --UIKit之UIScrollView 概述 UIKit框架中有大量的控件供开发者使用,在iOS开发中不仅可以直接使用这些控件还可以在这些控件的基础上进行扩展打造自己的控件.在这个系列中如果每个控件 ...

  5. 一步一步打造自己的Android图片浏览器(原创)

    今天我们试着来制作一个自己的Android图片浏览器. 图片浏览器应该具有什么功能呢?鉴于不同的人不同的理解,这里提出一个基本的需求: 搜索手机内的所有图片,展示于一个列表中: 列表中展示的是图片的缩 ...

  6. Android 图片浏览器 从原来位置放大至全屏显示

    android 图片浏览器 特点: 1.从网络加载图片,只需要传图片地址数组即可 2.点击图片,从原来位置放大至全屏 3.支持手势操作 4.完全自定义布局 项目源码请到GitHub下载:https:/ ...

  7. Atitit图片复制父目录给你设计的实现 基于win 图片浏览器

    Atitit图片复制父目录给你设计的实现 基于win 图片浏览器 打开属性,获取其路径...1 Ahk参数传递,使用环境变量即可1 如何ahk异常转换为java异常1 如何获取ahk的输出.1 C:\ ...

  8. ViewPager做图片浏览器,加载大量图片OOM的问题修正

    /** * @author CHQ * @version 1.0 * @date 创建时间: 2016/7/26 17:18 * @parameter * @return * 图片查看器 * //可以 ...

  9. QT_SVG格式图片浏览器_源代码下载_详细注释

    源代码链接: http://pan.baidu.com/s/1pKA5Vcv 密码: ib2x 注:SVG格式图片特点: 1. 文件小 2. 图像中文字独立于图像, 可以编辑,可搜索. 3.没有字体限 ...

随机推荐

  1. PAT 1147 Heaps[难]

    1147 Heaps(30 分) In computer science, a heap is a specialized tree-based data structure that satisfi ...

  2. PAT 1080 Graduate Admission[排序][难]

    1080 Graduate Admission(30 分) It is said that in 2011, there are about 100 graduate schools ready to ...

  3. R语言基本语法

    R语言基本语法 基本数据类型 数据类型 向量 vector 矩阵 matrix 数组 array 数据框 data frame 因子 factor 列表 list 向量 单个数值(标量)没有单独的数据 ...

  4. 4.8 Routing -- Specifying The URL Type

    1. 默认的路由器使用浏览器的hash来加载应用程序的开始状态并且当你移动时同步保持.目前,这依赖于浏览器中存在的hashchange事件. 2. 假设下面的路由器,输入/#/posts/new将会把 ...

  5. Spring MVC 复习笔记04

    复习 springmvc框架: DispatcherServlet前端控制器:接收request,进行response HandlerMapping处理器映射器:根据url查找Handler.(可以通 ...

  6. js正则表达式的使用详解

    本文转自:http://www.jb51.net/article/39623.htm 1定义正则表达式2关于验证的三个这则表达式方法3正则表达式式的转义字符 1定义正则表达式在js中定义正则表达式很简 ...

  7. 通过自动回复机器人学Mybatis:MySQL脚本 + db >> dao >> service >> servlet

    留着参考 makeData.sql delimiter // create procedure make_data() begin declare i int ; do insert into mes ...

  8. 20159212杨翔实验一(熟悉Java开发环境)实验报告

     实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验步骤与体会 一.命令行下Java程序开发 1.操作过程     在虚拟环境中 ...

  9. AngularJs 控制台

    在控制台查看$scope对象 html: 通过控制器里面的一个元素来获取这个控制器的$scope var node=document.getElementById("NewsVote&quo ...

  10. in和exists

    exists和in的使用方式: #对B查询涉及id,使用索引,故B表效率高,可用大表 -->外小内大 select * from A where exists (select * from B ...