IOS App 中很多地方都需要使用到圖片,如:背景、小圖標、Logo、按鈕等。這些圖片可以使用 UIImage 對象來創建,但是必須為圖片指定一個專門的容器組件—UIImageView
UIImage
是一個專門存儲圖片數據的對象,可以代表的圖片格式如下表
IOS 中,默認兼容的圖片格式是 PNG
可以通過文件、Quartz image對象或 image Data數據得到一個圖片對象,UIImage類還提供了使用多種混合模式和透明度繪制圖像的方法
UIImage相關功能比較多,除了代表圖片數據外,還可以對圖片中的數據進行處理,從而產生不同的圖片效果,這個在後面的 CoreImage 中學習。
UIImageView
專門為圖片提供的容器對象,所有的圖片要項在界面中顯示,必須先創建出 UIImage ,然後放入 UIImageView中。
關系圖
練習:
UIImage創建
用UIImage加載圖像的方法很多,最常用的是下面四種:
一、從當前工程目錄中得到圖片,用imageNamed函數
[UIImage imageNamed:ImageName];
[UIImage imageNamed:@"a.png"];
二、從數據庫得到圖片、用NSData的方式加載,一般從數據庫讀取圖片使用,例如:
NSString *filePath = [[NSBundle mainBundle]pathForResource:fileName ofType:extension];
NSData *image = [NSDatadataWithContentsOfFile:filePath];
[UIImage imageWithData:image];
三,從文件目錄中得到圖片,使用[UIImage imageWithContentOfFile:] 或者[imageinitWithContentOfFile:]
NSString *filePath = [[NSBundle mainBundle]pathForResource:fileName ofType:@"圖片擴展名"];
[UIImage imageWithContentsOfFile:aImagePath];
//綁定文件夾中 icon.png 的圖片
NSString *path = [[NSBundle mainBundle]pathForResource:@”icon”ofType:@”png”];
NSImage *myImage = [UIImageimageWithContentsOfFile:path];
四、從網絡得到圖片
UIImage *image = [[UIImage alloc]initWithData:[NSData dataWithContentsOfURL:[NSURLURLWithString:@"http://up.2cto.com/2013/0702/20130702085459778.jpg"]]];
UIImageView *imageView = [[UIImageView alloc]initWithImage:image];
——————————————————————————
UIImageView使用詳解
UIImageView:可以通過UIImage加載圖片賦給UIImageView,加載後你可以指定顯示的位置和大小。
1、初始化
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0.0,45.0,300,300)];
imageView.image = [UIImageimageNamed:@"a.png"];//加載入圖片
[self.view addSubView:image];
[imageView release];
//imageNamed方法是不能通過路徑進行加載圖片的,此方式容易引起發生內存警告從而導致自動退出的問題。
//最好是通過直接讀取文件路徑[UIImageimageWithContentsOfFile]解決掉這個問題.
NSImage *image = [[NSImagealloc]initWithContentsOfURL:(NSURL *)];
NSImage *image = [[NSImagealloc]initWithContentsOfFile:(NSString *)];
////////////////////////////////////////////////
//讓一個UIImageView響應點擊事件
//創建一個指定大小的圖片區域
UIImageView *imgView =[[UIImageView alloc]initWithFrame:CGRectMake(0, 0,320, 44)];
//允許用戶操作該 區域
imgView.userInteractionEnabled=YES;
//創建用戶“輕擊手勢”的響應,並通過 @selector() 指定,用戶點擊後調用的方法
UITapGestureRecognizer *singleTap=[[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(onClickImage)];
//把手勢對象,添加給視圖對象
[imgView addGestureRecognizer:singleTap];
//釋放資源
[singleTap release];
-(void)onClickImage{
//here, do whatever you wantto do
NSLog(@"imageview is clicked!");
}