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. (转) SpringBoot非官方教程 | 第二十四篇: springboot整合docker

    这篇文篇介绍,怎么为 springboot程序构建一个Docker镜像.docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源.Docker 可以让开发者打包他们的 ...

  2. KL与JS散度学习[转载]

    转自:https://www.jianshu.com/p/43318a3dc715?from=timeline&isappinstalled=0 https://blog.csdn.net/e ...

  3. Cannot find entry file index.android.js in any of the roots:[ Android ]

    Changed the version of react project to a lower one from here npm install -g rninit rninit init [Pro ...

  4. 解决不能在本地使用JQuery load的方法

    $.ajaxSetup({ xhr: function () { if ("ActiveXObject" in window) { return new ActiveXObject ...

  5. ACM ICPC, JUST Collegiate Programming Contest (2018) Solution

    A:Zero Array 题意:两种操作, 1 p v  将第p个位置的值改成v  2  查询最少的操作数使得所有数都变为0  操作为可以从原序列中选一个非0的数使得所有非0的数减去它,并且所有数不能 ...

  6. Digital Image Processing 学习笔记1

    第一章 1.1 数字图像 一幅图像可以定义为一个而为函数, 其中x和y是空间坐标,而在任何一对空间坐标(x, y)处的幅值f称为图像在该点处的强度或灰度.当x, y和灰度值f是有限的离散数值时,该图像 ...

  7. Jsuop Whitelist

    Jsuop使用示例代码 使用jsoup HTML Cleaner 方法进行清除,但需要指定一个可配置的 Whitelist.http://jsoup.org/apidocs/org/jsoup/saf ...

  8. 20145322 何志威《网络对抗》shellcode注入&Return-to-libc攻击深入

    基础知识 Shellcode实际是一段代码,但却作为数据发送给受攻击服务器,将代码存储到对方的堆栈中,并将堆栈的返回地址利用缓冲区溢出,覆盖成为指向 shellcode的地址. execstack - ...

  9. python排序算法实现(冒泡、选择、插入)

    python排序算法实现(冒泡.选择.插入) python 从小到大排序 1.冒泡排序: O(n2) s=[3,4,2,5,1,9] #count = 0 for i in range(len(s)) ...

  10. [BZOJ1176]Mokia

    Description 维护一个W*W的矩阵,初始值均为S.每次操作可以增加某格子的权值,或询问某子矩阵的总权值.修改操作数M<=160000,询问数Q<=10000,W<=2000 ...