IOS--UIImageView的使用方法
IOS--UIImageView的使用方法
其中第一 二种属于一种,共两种:
1)用imageNamed的方式加载时,系统会把图像Cache到内存。如果图像比较大,或者图像比较多,用这种方式会消耗很大的内存,而且释放图像的内存是一件相对来说比较麻烦的事情。例如:如果利用imageNamed的方式加载图像到一个动态数组NSMutableArray,然后将将数组赋予一个UIView的对象的animationImages进行逐帧动画,那么这将会很有可能造成内存泄露。并且释放图像所占据的内存也不会那么简单。但是利用imageNamed加载图像也有自己的优势。对于同一个图像系统只会把它Cache到内存一次,这对于图像的重复利用是非常有优势的。例如:你需要在一个TableView里重复加载同样一个图标,那么用imageNamed加载图像,系统会把那个图标Cache到内存,在Table里每次利用那个图像的时候,只会把图片指针指向同一块内存。这种情况使用imageNamed加载图像就会变得非常有效。
2)利用NSData方式加载时,图像会被系统以数据方式加载到程序。当你不需要重用该图像,或者你需要将图像以数据方式存储到数据库,又或者你要通过网络下载一个很大的图像时,请尽量使用imageWithData的方式加载图像。
无论用哪种方式加载图像,图像使用结束后,一定要记得显示释放内存。
// UIImageView的常用方法
UIImage *oneImage = [UIImage imageNamed:@"max.png"]; // 使用ImageView通过name找到图片
UIImageView *oneImageView = [[UIImageView alloc] initWithImage:oneImage]; //把oneImage添加到oneImageView上
oneImageView.frame = CGRectMake(10, 10, 300, 300); // 设置图片位置和大小
oneImageView.bounds = CGRectMake(10, 10, 280, 280); // 设置图片位置和大小,如果设置了frame,那么它这是的位置将不起作用
oneImageView.backgroundColor = [UIColor redColor]; // 设置背景颜色
oneImageView.alpha = 1.0; // 设置透明度
oneImageView.contentMode = UIViewContentModeTop;
// 有以下一些相对位置关系
// UIViewContentModeScaleToFill
// UIViewContentModeScaleAspectFit
// UIViewContentModeScaleAspectFill
// UIViewContentModeRedraw
// UIViewContentModeCenter
// UIViewContentModeTop
// UIViewContentModeBottom
// UIViewContentModeLeft
// UIViewContentModeRight
// UIViewContentModeTopLeft
// UIViewContentModeTopRight
// UIViewContentModeBottomLeft
// UIViewContentModeBottomRight
oneImageView.center = CGPointMake(150, 300); // 修改图片center的位置
oneImageView.transform = CGAffineTransformMakeTranslation(20, 20); // 把一个图片移动一段距离 其中20表示想要往x或者y方向移动多少,而不是移动到多少。
oneImageView.transform = CGAffineTransformMakeRotation(0.0f); // 旋转图像一定角度 注意:单位是弧度,而不是我们最常用的度数,所以可以写一个宏定义:#define degreesToRadians(x) (M_PI*(x)/180.0)
oneImageView.transform = CGAffineTransformMakeScale(0.5, 0.5); // 其中,CGFloat scale_w与CGFloat scale_h分别表示将原来的宽度和高度缩放到多少倍,下图是缩放到原来的0.5倍
// 为图片添加点击事件
// 一定要先将userInteractionEnabled置为YES,这样才能响应单击事件
oneImageView.userInteractionEnabled = YES; // 设置图片可以交互
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapImageView:)]; // 设置手势
[oneImageView addGestureRecognizer:singleTap]; // 给图片添加收拾
oneImageView.hidden = NO; // 隐藏或者显示图片 YES为隐藏
[oneImageView sizeToFit]; // 将图片尺寸调整为与内容图片相同
// oneImageView.highlightedImage = (UIImage *)hightlightedImage; // 设置高亮时显示的图片
// 设置图片连续播放,实现动画效果
oneImageView.animationImages = [NSArray arrayWithObjects:[UIImageimageNamed:@"max.png"], [UIImage imageNamed:@"min.png"], nil];
oneImageView.animationDuration = 0.3f; // 设置循环一次的时间
oneImageView.animationRepeatCount = 0; // 循环的次数。设置为0时无线循环
[oneImageView startAnimating]; // 开始动画
// [oneImageView stopAnimating]; // 停止动画
// 获取网络中的图片
UIImage *urlImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"www.baidu.com"]]];
// 添加到View上,并释放内存
[self.view addSubview:oneImageView];
[oneImageView release], oneImageView = nil;
IOS--UIImageView的使用方法的更多相关文章
- [iOS]UIImageView增加圆角
[iOS]UIImageView增加圆角 "如何给一个UIImageView增加圆角?有几种方法?各自区别?" 备注:本文参考自http://www.jianshu.com/p/d ...
- iOS-提高iOS开发效率的方法和工具
提高iOS开发效率的方法和工具 介绍 这篇文章主要是介绍一下我在iOS开发中使用到的一些可以提升开发效率的方法和工具. IDE 首先要说的肯定是IDE了,说到IDE,Xcode不能跑,当然你也可能同时 ...
- iOS中的过期方法和新的替代方法
关于iOS中的过期方法和新的替代方法 1.获取某些类的UINavigationBar的统一外观并设置UINavigationbar的背景 注:方法名改了但是基本使用方法不变 + (instancety ...
- opencv直线检测在c#、Android和ios下的实现方法
opencv直线检测在c#.Android和ios下的实现方法 本文为作者原创,未经允许,不得转载 :原文由作者发表在博客园:http://www.cnblogs.com/panxiaochun/p/ ...
- iOS开发——实用篇&提高iOS开发效率的方法和工具
提高iOS开发效率的方法和工具 介绍 这篇文章主要是介绍一下我在iOS开发中使用到的一些可以提升开发效率的方法和工具. IDE 首先要说的肯定是IDE了,说到IDE,Xcode不能跑,当然你也可能同时 ...
- iOS与HTML5交互方法总结(转)
今天小编在找技术文章的时候,发现这样一个标题:iOS与HTML5交互方法总结,怎么看着这么熟悉呢? 还以为是刚哥用了别的文章,点进去一看,原来是刚哥自己写的文章,他们转载的,而且还上了Dev St ...
- iOS UISearchController 的使用方法
iOS UISearchController 的使用方法 UISearchController 让用户在 UISearchBar 上输入搜索关键词,展示搜索结果或者进行其他操作.UISearchCon ...
- IOS常见的加密方法,常用的MD5和Base64
iOS代码加密常用加密方式 iOS代码加密常用加密方式,常见的iOS代码加密常用加密方式算法包括MD5加密.AES加密.BASE64加密,三大算法iOS代码加密是如何进行加密的,且看下文 MD5 iO ...
- iOS - UIImageView - how to handle UIImage image orientation
本文转载至 http://stackoverflow.com/questions/8915630/ios-uiimageview-how-to-handle-uiimage-image-orienta ...
- iOS与HTML5交互方法总结(修正)
摘要 看了不少别人写的博客或者论坛,关于iOS与HTML5交互方法大概主要有5种方式: 1. 利用WKWebView进行交互(系统API) 2. 利用UIWebView进行交互(系统API) 3. 苹 ...
随机推荐
- Java处理文件小例子--获取全国所有城市的坐标
需求:前端展示数据,全国城市的坐标
- java中的闭包和回调
闭包(Closure)是一种能被调用的对象,它保存了创建它的作用域的信息.JAVA并不能显式地支持闭包,但是在JAVA中,闭包可以通过“接口+内部类”来实现,因为对于非静态内部类而言,它不仅记录了其外 ...
- Delphi十进制和十六进制互转
Delphi 自带函数 IntToHex 功能说明:该函数用于将“十进制”转换成“十六进制”.该函数有二个参数.第一个参数为要转换的十进制数据,第二个参数是指定使用多少位来显示十六进制数据. 参考实例 ...
- bootstrapUI
http://www.tinygroup.org/tinyadmin/#ajax/dashboard.pagelet
- 让Hibernate生成的DDL脚本自动增加注释
我们知道可以通过Hibernate对象自动生成DDL建表语句,通过PowerDesigner工具可以反向工程生成数据字典,但是在生成的DDL中一直不能写上中文的注释,这就使我们生成的数据字典不具有可用 ...
- Understanding JTS--reference
Part I-An introduction to transactions If you look at any introductory article or book on J2EE, you' ...
- 自定义控件(视图)2期笔记10:自定义视图之View事件分发机制("瀑布流"的案例)
1. Touch事件的传递: 图解Touch事件的传递,如下: 当我们点击子View 02内部的Button控件时候,我们就触发了Touch事件. • 这个Touch事件首先传递给了顶级父View ...
- post get
/// <summary> /// Get方法 /// </summary> /// <param name="serverUrl">url地址 ...
- 惠普 Compaq 6520s 无线开关打不开
问题描述:键盘上面的无线开关怎么按都打不开,始终是出于黄色的状态 解决方法:尝试恢复bios默认值测试: 开机不停点击F10进入bios,选择File选项,选择Restore Defaults-- ...
- c#读取文件
你平时是怎么读取文件的?使用流读取.是的没错,C#给我们提供了非常强大的类库(又一次吹捧了.NET一番), 里面封装了几乎所有我们可以想到的和我们没有想到的类,流是读取文件的一般手段,那么你真的会用它 ...