Swift 图片浏览器

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 图片浏览器的更多相关文章
- swift项目初体验--教你打造一款个性化图片浏览器(篇幅过大,慎入)
项目需求:做一个图片浏览器,点击图片查看大图,大图模式下,左右滚动能查看不同的图片. 项目的主要核心技术:图片的弹出和消失动画 项目源代码: Photo-Browser 一.对代码进行重构 ...
- iOS Swift WisdomScanKit图片浏览器功能SDK
iOS Swift WisdomScanKit图片浏览器功能SDK使用 一:简介 WisdomScanKit 由 Swift4.2版编写,完全兼容OC项目调用. WisdomScanKit的 ...
- 纯JS打造比QQ空间更强大的图片浏览器-支持拖拽、缩放、过滤、缩略图等
在线演示地址(打开网页后,点击商家图册): http://www.sport7.cn/cc/jiangnan/football5.html 先看一看效果图: 该图片浏览器实现的功能如下: 1. 鼠标滚 ...
- iOS开发系列--无限循环的图片浏览器
--UIKit之UIScrollView 概述 UIKit框架中有大量的控件供开发者使用,在iOS开发中不仅可以直接使用这些控件还可以在这些控件的基础上进行扩展打造自己的控件.在这个系列中如果每个控件 ...
- 一步一步打造自己的Android图片浏览器(原创)
今天我们试着来制作一个自己的Android图片浏览器. 图片浏览器应该具有什么功能呢?鉴于不同的人不同的理解,这里提出一个基本的需求: 搜索手机内的所有图片,展示于一个列表中: 列表中展示的是图片的缩 ...
- Android 图片浏览器 从原来位置放大至全屏显示
android 图片浏览器 特点: 1.从网络加载图片,只需要传图片地址数组即可 2.点击图片,从原来位置放大至全屏 3.支持手势操作 4.完全自定义布局 项目源码请到GitHub下载:https:/ ...
- Atitit图片复制父目录给你设计的实现 基于win 图片浏览器
Atitit图片复制父目录给你设计的实现 基于win 图片浏览器 打开属性,获取其路径...1 Ahk参数传递,使用环境变量即可1 如何ahk异常转换为java异常1 如何获取ahk的输出.1 C:\ ...
- ViewPager做图片浏览器,加载大量图片OOM的问题修正
/** * @author CHQ * @version 1.0 * @date 创建时间: 2016/7/26 17:18 * @parameter * @return * 图片查看器 * //可以 ...
- QT_SVG格式图片浏览器_源代码下载_详细注释
源代码链接: http://pan.baidu.com/s/1pKA5Vcv 密码: ib2x 注:SVG格式图片特点: 1. 文件小 2. 图像中文字独立于图像, 可以编辑,可搜索. 3.没有字体限 ...
随机推荐
- 【转】Deep Learning(深度学习)学习笔记整理系列之(二)
因为我们要学习的是特征的表达,那么关于特征,或者说关于这个层级特征,我们需要了解地更深入点.所以在说Deep Learning之前,我们有必要再啰嗦下特征(呵呵,实际上是看到那么好的对特征的解释,不放 ...
- Jquery 简明介绍
http://www.cnblogs.com/luotianshuai/p/5196997.html http://www.cnblogs.com/liujianzuo888/articles/568 ...
- 关于eval 与new Function 到底该选哪个?
废话不多说,直接上测试代码 复制代码 代码如下: var aa = "{name:'cola',item:[{age:11},{age:22},{age:23},{age:23}]}&quo ...
- 20155203 2016-2017-4 《Java程序设计》第8周学习总结
20155203 2016-2017-4 <Java程序设计>第8周学习总结 教材学习内容总结 1.channel的继承架构 2.position()类似于堆栈操作中的栈顶指针. 3.Pa ...
- HDU1059 二进制拆分优化多重背包
/*问你能不能将给出的资源平分成两半,那么我们就以一半为背包,运行多重背包模版 但是注意了,由于个数过大,直接运行会超时,所以要用二进制拆分每种的个数*/ #include<stdio.h> ...
- 2018-2019-1 20189215 《Linux内核原理与分析》第七周作业
<庖丁解牛>第六章书本知识总结 操作系统内个实现操作系统的三大管理功能:进程管理.内存管理.文件系统.分别对应<操作系统原理>中最重要的3个抽象概念是进程.虚拟内存和文件. L ...
- Spring Data JPA 关系映射(一对一,一对多,多对多 )
CascadeType.REMOVE 级联删除操作,删除当前实体时,与它有映射关系的实体也会跟着被删除.CascadeType.MERGE 级联更新(合并)操作,当Student中的数据改变,会相应地 ...
- mfc制作ActiveX
转:https://blog.csdn.net/hkcsdn/article/details/52908748 前言 ActiveX是Microsoft对于一系列策略性面向对象程序技术和工 ...
- LeetCode——Rotate Image
1. Question You are given an n x n 2D matrix representing an image. Rotate the image by 90 degrees ( ...
- MyBatis获取SqlSession
package com.ykmimi.dao; import org.apache.ibatis.session.SqlSession; import com.ykmimi.entity.Studen ...