2012-01-28 3 views
0

테이블 뷰에서 데이터를로드 할 때 각 행에는 셀 크기에 맞게 크기가 조정되는 간단한 그림 500x300px가 있습니다.uitableviewcell 이미지 크기 조정

이미지 크기를 조정할 수 있습니까?

tableview.m 난 당신이 성능을 향상시키기 위해 셀에 그들을 가하고 전에 크기를 조절 의미 가정

NSString *filePath = [[NSBundle mainBundle] pathForResource:receip.image ofType:@"jpg"]; 
UIImage *image = [UIImage imageWithContentsOfFile:filePath]; 
cell.imageView.image = image; 

답변

1

? 다음과 같이

당신은 핵심 그래픽이 작업을 수행 할 수 있습니다 : 그것은 많은 계산 작업입니다하지만

//define desired size 
CGSize size = CGSizeMake(100.0f, 100.0f); 

//create drawing context 
UIGraphicsBeginImageContextWithOptions(size, NO, 0.0f); 

//draw image at new size 
[image drawInRect:CGRectMake(0.0f, 0.0f, size.width, size.height)]; 

//capture resultant image 
UIImage *resizedImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

경고합니다. 아마 배경 스레드에서 모든 이미지의 크기를 미리 조정하고 크기가 조정 된 버전을 배열에 저장하려고 할 것입니다. 틀림없이 위의 코드를 cellForRowAtIndexPath 메소드에 사용하고 싶지 않거나 테이블 스크롤 성능이 악마적일 것입니다.

0

이러한 이미지가 외부 소스 (예 : 웹)에서 온 경우. 원래 파일을 캐시 한 다음 (@Nick Lockwood의 설명처럼) 크기를 조정하는 것이 좋습니다 (망막 디스플레이는 고해상도 표시를 위해 너비/높이가 두 배 필요합니다). 그 과정이 끝나면 "다운로드"가 완료되었다는 신호를 보내고 다음을 보여줄 수 있습니다. UITableView

이미 이미지가 응용 프로그램 번들에있는 경우 엄지 손가락 버전을 만들어 추가하는 것이 좋습니다 귀하의 번들로. 더 나은 성능을 위해.

+0

내 코드 예제에서 망막 디스플레이는 이미 UIGraphicsBeginImageContextWithOptions의 세 번째 매개 변수로 처리되었습니다. 0.0을 눈금으로 전달하면 컨텍스트가 iPhone 3GS에서는 1.0, iPhone 4 이상에서는 2.0으로 생성되므로 이미지 크기를 수동으로 곱할 필요가 없습니다. –

+0

번들의 이미지 크기를 조정하는 좋은 점은 - 앱과 함께 제공되는 경우 엄지 손톱을 미리 생성해야합니다. –