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. Exception in thread "main" java.lang.NoClassDefFoundError: scala/Product$class

    在使用spark sql时一直运行报这个错误,最后仔细排查竟然是引入了两个scala library .去除其中一个scala的编译器即可 Exception in thread "main ...

  2. 【PGM】Representation--Knowledge Engineering,不同的模型表示,变量的类型,structure & parameters

    Part 1. 重要的区别: Template based   vs.   specific Directed  vs.  undirected Generative  vs.  discrimina ...

  3. 1:3访问 servlet API 的两种方式(request,session等内置对象)

    1:解耦方式 2:耦合方式: ========================================== ========================================== ...

  4. .net webform 把word转为html

    首先添加引用 引用命名空间 using Microsoft.Office.Interop.Word; using System; using System.Collections.Generic; u ...

  5. Kernel space是啥?

    今天因为查一个Java zero copy的问题,遇到了kernel space.之前是耳闻过内核空间的,但是看到kernel space不知道是啥.知道的太少,除了学习,我也做不了啥.因为自己认知有 ...

  6. 什么是T-SQL

    T-SQL T-SQL 即 Transact-SQL,是 SQL 在 Microsoft SQL Server 上的增强版,它是用来让应用程序与 SQL Server 沟通的主要语言.T-SQL 提供 ...

  7. Android 多媒体MediaPlayer使用详解

    现在的手机功能越来越丰富了,遥想10年前,MP3,MP4,MP5,还是很流行的,博主当时读高中时很想拥有一台,可以听音乐和看电影.可是条件有限,学校也禁止此东西,所以只能偷偷的玩.而现在我们的手机也很 ...

  8. java压缩zip文件中文乱码问题

    用java来打包文件生成压缩文件,有两个地方会出现乱码 1.内容的中文乱码问题,这个问题网上很多人给出了解决方法,两种:修改sun的源码:使用开源的类库org.apache.tools.zip.Zip ...

  9. SQL 中 not in 查询不到数据问题

    在开发的过程中,遇到过not in 始终查询不到数据问题 select * from T_CustomerInfo where CustomerID not in (select CustomerID ...

  10. UVALive 6955 Finding Lines(随机化优化)题解

    题意:问你是否有一条直线满足这条直线上的点个数与总个数之比不小于p 思路:解法太暴力了,直接随机取两个数,如果能满足条件就输出可以,否则不行.证明一下为什么可以随机化,题目给出可能有P >=20 ...