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.没有字体限 ...
随机推荐
- (转) SpringBoot非官方教程 | 第二篇:Spring Boot配置文件详解
springboot采纳了建立生产就绪spring应用程序的观点. Spring Boot优先于配置的惯例,旨在让您尽快启动和运行.在一般情况下,我们不需要做太多的配置就能够让spring boot正 ...
- 4.1 Routing -- Introduction
一.Routing 1. 当用户与应用程序交互时,它会经过很多状态.Ember.js为你提供了有用的工具去管理它的状态和扩展你的app. 2. 要理解为什么这是重要的,假设我们正在编写一个Web应用程 ...
- (1)了解cocostudio基础
操作界面 Cocos Studio的界面主要分为菜单栏.工具栏.对象面板.资源面板.画布面板.属性面板.动画面板.输出窗口.状态栏九部分组成,如下图: 菜单栏 菜单栏为Cocos Studio ...
- 22. Generate Parentheses(回溯)
Given n pairs of parentheses, write a function to generate all combinations of well-formed parenthes ...
- 牛客国庆集训派对Day5 Solution
A 璀璨光滑 留坑. B 电音之王 蒙特马利大数乘模运算 #include <bits/stdc++.h> using namespace std; typedef long ...
- CCPC 2017-2018, Finals Solution
A - Dogs and Cages 水. #include <bits/stdc++.h> using namespace std; int t; double n; int main( ...
- cocos2dx 3.x 蒙板 遮罩 点击圆功能
//注册触摸 EventListenerTouchOneByOne *listener = EventListenerTouchOneByOne::create(); listener->onT ...
- uwsgi手动安装时报错ValueError: invalid literal for int() with base 10: '32_1'
安装uwsgi,安装步骤如下 wget https://projects.unbit.it/downloads/uwsgi-latest.tar.gz tar zxvf uwsgi-latest.ta ...
- 分布式session的管理
在分布式架构或微服务架构下,必须保证一个应用服务器上保存Session后,其它应用服务器可以同步或共享这个Session,可能会出现在A1系统登录后创建并保存Session,再次发起请求,请求被转发到 ...
- mssql查询所有上下级
if exists (select * from sys.all_objects where name='GetOrgTreeByID') begin drop proc GetOrgTreeByID ...