UIImageView는 참 편리하게 여기저기 많이 사용됩니다. 로컬에 있는 이미지들을 화면에 뿌려줄 때 참 좋죠. 하지만 이미지가 http://www.xxx.xx/123.jpg라면 어떻게 보여줄 수 있을지 한번 살펴보겠습니다. UIImageView * couponImageView = [UIImageView alloc] initWithFrame:CGRectMake(0,0,100,100)]; [couponImageView setImage: [UIImage imageWithData: [NSData dataWithContentsOfURL: [NSURL URLWithString:@"http://www.xxx.xx/123.jpg"]]]]; 이렇게 하면 URL에 있는 이미지를 바로 UIImageView로 뿌려줄 수 있습니다. 당연히 UIImage형태가 들어가는 모든곳에서 NSData를 이용해서 이미지를 뿌려줄 수 있는데요. 버튼이나 라벨등에도 사용 가능합니다. 한발 더 나아가서, 만약 이미지를 asynch로 가져와서 NSData로 데이터를 다 받은 다음 뿌려주도록(물론 데이터를 받아오는 도중에는 인디케이터 같은걸 돌려서 사용자가 앱이 작동중이라는 사실을 확인할 수 있도록 해야겠죠.)할 수 있을까요? UIImageView는 이미지가 다 로드 되었는지 아닌지를 확인하는 이벤트를 전혀 발생시켜주지 않습니다. 하지만 다른 방법으로 원하는 이벤트를 받을 수 있는데요. NSMutableURLRequest * request = [NSMutableURLRequest requestWithURL: [NSURL URLWithString:@"http://www.xxx.xx/123.jpg"]]; sendAsynchronousRequest:request queue:[[[NSOperationQueue alloc] init] autorelease] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) { 이렇게 이미지 URL을 뿌려주고 다 받은 경우의 이벤트를 사용할 수 있겠습니다.
[NSURLConnection
//데이터를 다 받은 경우
if (data) {
[couponImageView setImage:[UIImage imageWithData:data]];
}
//데이터를 받지 못한 경우
else {
}
}];
'영삼이의 IT정보' 카테고리의 다른 글
네비게이션 뷰 컨트롤러에서 탭바 숨기기 (0) | 2012.06.14 |
---|---|
PHP 소수점이하 두자리까지 자르는 방법 (0) | 2012.06.14 |
svn merge 방법 (0) | 2012.06.12 |
mac용 svn시작하기 [출처] mac용 svn시작하기|작성자 seungbeomi (0) | 2012.06.12 |
mac os x 에 apache module dav_svn 설치하기. (0) | 2012.06.12 |