swift学习笔记-UI篇之UIImageView
1.基本使用
将要使用的图片拖入到项目里,我这里使用的是名为“1.jpg”的图片,然后创建UIImageView,并设置要显示的图片为"1.jpg"//1. 基本使用
let imageView = UIImageView(frame: CGRectMake(100, 10, 200, 200))
imageView.image = UIImage(named:"1.jpg")
self.view.addSubview(imageView)
2.UIImageView的用户交互
UIImageView的用户交互默认是关闭的,也就是说添加到ImageView上的事件都不会响应,需要我们手动设置userInteractionEnabled属性为真,我们给UIImageVIew添加一个点击手势来测试一下,如果注释掉第一行,点击就会失去反应//2. 用户交互
imageView.userInteractionEnabled = true
let tap = UITapGestureRecognizer(target: self, action: Selector("tapAction:"))
imageView.addGestureRecognizer(tap)
func tapAction(tap :UITapGestureRecognizer) {
let scale :CGFloat = 1.2
var frame = tap.view!.frame
frame = CGRectMake(frame.origin.x * scale, frame.origin.y * scale, frame.size.width * scale, frame.size.height * scale)
tap.view!.frame = frame
}
3.图片拉伸
1. 整张图片拉伸
为了便于区分,我们给self.view一个红色背景,imageView为绿色,同时改变imageView的高度为300。原图尺寸为136 × 94//1) 图片整体拉伸
self.view.backgroundColor = UIColor.redColor()
imageView.backgroundColor = UIColor.greenColor()
var frame = imageView.frame
frame = CGRectMake(frame.origin.x, frame.origin.y, frame.size.width, 300)
imageView.frame = frame
// 设置拉伸模式
/*
ScaleToFill: 填充模式,图片不会保持原来的比例
ScaleAspectFit: 图片保持原来的比例,宽度填充,高度自适应
ScaleAspectFill: 图片保持原来的比例,高度填充,宽度自适应
*/
imageView.contentMode = UIViewContentMode.ScaleAspectFit
2. 部分拉伸
部分拉伸的原理:通过UIEdgeInsets设置拉伸区域,通过减去top、left、bottom、right的距离,得到的中间区域就是拉伸区域。通过平铺拉伸区域或者拉伸拉伸区域来实现部分拉伸。具体计算请看resizableImageWithCapInsets:方法的探析//2) 部分拉伸
let imageView2 = UIImageView(frame: CGRectMake(10, 320, 200, 94))
// imageView2.image = UIImage(named: "qipao.png")
imageView2.backgroundColor = UIColor.greenColor()
self.view.addSubview(imageView2)
// 设置拉伸
// stretch:通过拉伸来填充
imageView2.image = UIImage(named: "qipao.png")!.resizableImageWithCapInsets(UIEdgeInsetsMake(52, 40, 36, 64), resizingMode: UIImageResizingMode.Stretch)
// tile:通过重复来填充
// imageView2.image = UIImage(named: "qipao.png")!.resizableImageWithCapInsets(UIEdgeInsetsMake(52, 40, 36, 64), resizingMode: UIImageResizingMode.Tile)
4.图片动画
先把动画素材导入到项目,创建数组读取图片,再赋值给imageView的animationImages属性,分别设置好动画时间和循环次数后开启动画//4. 图片动画
// 创建UIimage数组,数组每个元素为一帧
let animationImages = NSMutableArray()
for var i = 1; i <= 40; i++ {
let image = UIImage(named: "v\(i).jpg")
animationImages.addObject(image!)
}
let array = animationImages as Array as? [UIImage]
// 设置animationImages
imageView.animationImages = array
// 设置动画时间
imageView.animationDuration = 9
// 设置动画循环次数,0为无限循环
imageView.animationRepeatCount = 0
// 开启动画
imageView.startAnimating()
5.源码下载
https://github.com/ljcoder2015/SwiftStudyNote/tree/master/swift-UIImageView
原文链接:http://www.jianshu.com/p/f7fca80a7235
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
swift学习笔记-UI篇之UIImageView的更多相关文章
- 【swift学习笔记】二.页面转跳数据回传
上一篇我们介绍了页面转跳:[swift学习笔记]一.页面转跳的条件判断和传值 这一篇说一下如何把数据回传回父页面,如下图所示,这个例子很简单,只是把传过去的数据加上了"回传"两个字 ...
- PHP学习笔记 - 进阶篇(11)
PHP学习笔记 - 进阶篇(11) 数据库操作 PHP支持哪些数据库 PHP通过安装相应的扩展来实现数据库操作,现代应用程序的设计离不开数据库的应用,当前主流的数据库有MsSQL,MySQL,Syba ...
- PHP学习笔记 - 进阶篇(10)
PHP学习笔记 - 进阶篇(10) 异常处理 抛出一个异常 从PHP5开始,PHP支持异常处理,异常处理是面向对象一个重要特性,PHP代码中的异常通过throw抛出,异常抛出之后,后面的代码将不会再被 ...
- PHP学习笔记 - 进阶篇(9)
PHP学习笔记 - 进阶篇(9) 图形图像操作 GD库简介 GD指的是Graphic Device,PHP的GD库是用来处理图形的扩展库,通过GD库提供的一系列API,可以对图像进行处理或者直接生成新 ...
- PHP学习笔记 - 进阶篇(8)
PHP学习笔记 - 进阶篇(8) 日期与时间 取得当前的Unix时间戳 UNIX 时间戳(英文叫做:timestamp)是 PHP 中关于时间与日期的一个很重要的概念,它表示从 1970年1月1日 0 ...
- PHP学习笔记 - 进阶篇(7)
PHP学习笔记 - 进阶篇(7) 文件操作 读取文件内容 PHP具有丰富的文件操作函数,最简单的读取文件的函数为file_get_contents,可以将整个文件全部读取到一个字符串中. $conte ...
- PHP学习笔记 - 进阶篇(6)
PHP学习笔记- 进阶篇(6) 会话控制(session与cookie) 当前的Cookie为: cookie简介 Cookie是存储在客户端浏览器中的数据,我们通过Cookie来跟踪与存储用户数据. ...
- PHP学习笔记 - 进阶篇(4)
PHP学习笔记 - 进阶篇(4) 字符串操作 字符串介绍 PHP开发中,我们遇到最多的可能就是字符串. 字符串变量用于包含字符串的值. 一个字符串 通过下面的3种方法来定义: 1.单引号 2.双引号 ...
- PHP学习笔记 - 进阶篇(5)
PHP学习笔记 - 进阶篇(5) 正则表达式 什么叫正则表达式 正则表达式是对字符串进行操作的一种逻辑公式,就是用一些特定的字符组合成一个规则字符串,称之为正则匹配模式. $p = '/apple/' ...
随机推荐
- JDK 动态代理实现原理
一.引言 Java动态代理机制的出现,使得Java开发人员不用手工编写代理类,只要简单地指定一组接口及委托类对象便能动态生成代理类.代理类会负责将所有方法的调用分派到委托对象上反射执行,在分派执行的过 ...
- centos 普通用户添加sudo权限
本文介绍下,在centos中为普通用户添加sudo权限的方法,供大家学习参考. 在centos中为普通用户增加sudo权限的简单方法,大家参考下. 1,修改/etc/sudoers文件,必须为visu ...
- JSON对象配合jquery.tmpl.min.js插件,手动攒出一个table
jquery.tmpl.min.js 首先下载这个插件 1.绑定json那头的键 //TemplateDDMX 这个是这段JS的ID,这个必须写!!!!!! //${}为json的键的值,必须要填写正 ...
- PAT乙级真题1016.部分A+B(15)(2016-4-28)
原题: 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA.例如:给定A = 3862767,DA ...
- MySQL性能优化的最佳20+套经验
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我 们程序员需要去关注的事情.当我们去设计数据库表结构,对操 ...
- Linux关机命令总结
在linux命令中reboot是重新启动,shutdown -r now是立即停止然后重新启动,都说他们两个是一样的,其实是有一定的区别的. shutdown命令可以安全地关闭或重启Linux系统,它 ...
- 保持程序在后台长时间运行-b
iOS为了让设备尽量省电,减少不必要的开销,保持系统流畅,因而对后台机制采用墓碑式的“假后台”.除了系统官方极少数程序可以真后台,一般开发者开发出来的应用程序后台受到以下限制:1.用户按Home之后, ...
- 修复jquery.treeview的增加子节点的方法的bug
1.修复理由 在一个android项目中用到了treeview控件(本来自己通过android的原生api实现了一个http://www.cnblogs.com/Mr-Nobody/p/3527688 ...
- PythonChallenge 2:爬虫和正则表达式
题目: 解题思路:题目里已经说的很清楚了,字符可能在网页的源代码里.右键查看网页源代码,发现其中有一段:find rare characters in the mess below.有些人是直接把下面 ...
- ios 框架学习笔记
ios主要的系统层次: 一.Cocoa Touch 层:创建应用程序主要使用的框架. 1.关键技术: AirDrop:实现应用间通信. Text Kit:处理文本和排版. UIKit Dynamics ...