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. 1124 Raffle for Weibo Followers[简单]

    1124 Raffle for Weibo Followers(20 分) John got a full mark on PAT. He was so happy that he decided t ...

  2. Bootstrap抽样(自展法)

    Bootstrap又称自展法,是用小样本估计总体值的一种非参数方法,在进化和生态学研究中应用十分广泛.例如进化树分化节点的自展支持率等. Bootstrap的思想,是生成一系列bootstrap伪样本 ...

  3. Flask Web 开发 错误页面自定义

    如果要自定义错误画面,无法大多数情况是自定义404和500的情况 首先,要在路由中设置 通过app.error_handler这个装饰器来绑定响应函数 @main.errorhandler(404) ...

  4. 存储结构简明分析——DAS、NAS和SAN

    存储的总体分类     主流存储结构   网络存储结构大致分为三种:直连式存储(DAS:Direct Attached Storage).存储区域网络(SAN:Storage Area Network ...

  5. HDU 1438 钥匙计数之一(状压DP)题解

    思路: 每个槽有4种深度,一共有2^4种状态.然后开4维来保存每一次的状态:dp[ 第几个槽 ][ 当前状态 ][ 末尾深度 ][ 是否符合要求 ]. 代码: #include<cstdio&g ...

  6. 试着用React写项目-利用styled-components解决样式问题

    转载请注明出处:王亟亟的大牛之路 啰嗦之前先安利,会渐渐丰富前端的知识点 https://github.com/ddwhan0123/Useful-Open-Source-Android 昨天用web ...

  7. Matplotlib 练习题

    1. 绘制一个二维随机漫步的图形 直接上代码: %pylab inline nsteps = 1000 draws = np.random.randint(-1,2,size=(2,nsteps)) ...

  8. python 匹配指定后缀的文件名

    import glob x=glob.glob('*.py') print(x)

  9. Strategy(策略)

    意图: 定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换.本模式使得算法可独立于使用它的客户而变化. 适用性: 许多相关的类仅仅是行为有异.“策略”提供了一种用多个行为中的一个行为来配置 ...

  10. Spring IOC 源码简单分析 02 - Bean Reference

    ### 准备 ## 目标 了解 bean reference 装配的流程 ##测试代码 gordon.study.spring.ioc.IOC02_BeanReference.java   ioc02 ...