[IOS实例小计]UIImageView(2)

来源:未知 责任编辑:责任编辑 发表时间:2015-09-17 09:44 点击:

p> 

p>UITapGestureRecognizer *singleTap=[[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(onClickImage)];

p> 

p>//把手势对象,添加给视图对象

p> 

p>[imgView addGestureRecognizer:singleTap];

p> 

p>//释放资源

p> 

p>[singleTap release];  

p> 

p>-(void)onClickImage{

p> 

p>   //here, do whatever you wantto do

p> 

p>   NSLog(@"imageview is clicked!");

p> 

p>}

p> 

p>1)用imageNamed的方式加载时,系统会把图像Cache到内存。如果图像比较大,或者图像比较多,用这种方式会消耗很大的内存,而且释放图像的内存是一件相对来说比较麻烦的事情。例如:如果利用imageNamed的方式加载图像到一个动态数组NSMutableArray,然后将将数组赋予一个UIView的对象的animationImages进行逐帧动画,那么这将会很有可能造成内存泄露。并且释放图像所占据的内存也不会那么简单。但是利用imageNamed加载图像也有自己的优势。对于同一个图像系统只会把它Cache到内存一次,这对于图像的重复利用是非常有优势的。例如:你需要在一个TableView里重复加载同样一个图标,那么用imageNamed加载图像,系统会把那个图标Cache到内存,在Table里每次利用那个图像的时候,只会把图片指针指向同一块内存。这种情况使用imageNamed加载图像就会变得非常有效。

p> 2)利用NSData方式加载时,图像会被系统以数据方式加载到程序。当你不需要重用该图像,或者你需要将图像以数据方式存储到数据库,又或者你要通过网络下载一个很大的图像时,请尽量使用imageWithData的方式加载图像。

p>用NSTimer去实现apple的UIImageView animation的效果(这是一种解决办法)

p> 

p>扩展:

p>为UIImageView增加手势

p> 

p>[ImageView addGestureRecognizer:我们自己的手势recognizer];

p> 

p>如何创建一个手势?看看UITapGestureRecognizer 的用法吧

p> 

p> 

p> //单指单击

p> 

p> UITapGestureRecognizer *singleFingerOne = [[UITapGestureRecognizer alloc] initWithTarget:self

p> action:@selector(handleSingleFingerEvent:)];

p> singleFingerOne.numberOfTouchesRequired = 1; //手指数

p> singleFingerOne.numberOfTapsRequired = 1; //tap次数

p> singleFingerOne.delegate= self;

p> 

p> //单指双击

p> UITapGestureRecognizer *singleFingerTwo = [[UITapGestureRecognizer alloc] initWithTarget:self

p> action:@selector(handleSingleFingerEvent:)];

p> singleFingerTwo.numberOfTouchesRequired = 1;

p> singleFingerTwo.numberOfTapsRequired = 2;

p> singleFingerTwo.delegate= self;

p> 

p> //双指单击

p> UITapGestureRecognizer *doubleFingerOne = [[UITapGestureRecognizer alloc] initWithTarget:self

p> action:@selector(handleDoubleFingerEvent:)];

p> doubleFingerOne.numberOfTouchesRequired = 2;

p> doubleFingerOne.numberOfTapsRequired = 1;

p> doubleFingerOne.delegate= self;

p> 

p> UITapGestureRecognizer *doubleFingerTwo = [[UITapGestureRecognizer alloc] initWithTarget:self

p> action:@selector(handleDoubleFingerEvent:)];

p> doubleFingerTwo.numberOfTouchesRequired = 2;
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Lexical or Preprocessor Issue 'xxx.h
  • ios学习笔记(二)xcode 4.3.2下实现基本交互
  • ios学习笔记(一)xcode 4.3.2下创建第一个ios项目
  • UITableView一些方法
  • IOS类似iphone通讯录TableView的完整demo【附源码】
  • ios版本的helloworld
  • iPhone SDK开发:本地文本文件内容的读取
  • 如何为Iphone应用创建启动界面
  • 去掉屏幕键盘的方法
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1