.h 파일
@interface IndexPage : UITableViewController
{
//텍스트 입력받을 배열 생성
NSArray *listData;
}
@property (nonatomic, retain) NSArray *listData;
@end
//---------------------------------------------------------------------------------
.m파일
@synthesize listData;
- (void)viewDidLoad {
[super viewDidLoad];
//셀에 텍스트 삽입
NSArray *array = [[NSArray alloc] initWithObjects:@"iPhone", @"iPod", @"iPad",nil];
self.listData = array;
}
/1/ 기본적으로 테이블에 리스트만 넣을때
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
// 이 문자열은 테이블 셀의 종류를 나타내는 키로 쓰인다.
static NSString *SimpleTableIdentifier = @"SimpleTableIdentifier";
// 테이블뷰의 셀들이 스크롤돼서 화면에서 사라지면 재사용 가능한 셀의 뷰(queue)에 들어간다
// 새로운 행이 이전에 사라졌던 행 중에서 다시 사용하게 된다면 시스템은 끊임없이 이러한 뷰를 만들고 해제하는 부담을 피할수 있다.
// 이러한 방법을 사용하기 위해서 디큐(dequeue)된 셀중에서 필요한 타입을 테이블 뷰에서 얻어야 한다. (SimpleTableIdentifier)
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:SimpleTableIdentifier];
if(cell == nil) {
// 재사용 가능하게 동일한 셀로 만든다. 이부분을 이용하여 썸네일 넣는다.
cell =[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:SimpleTableIdentifier];
}
// 어떤 행의 값을 사용할 것인지 결정
NSInteger row = [indexPath row];
cell.textLabel.text = [listData objectAtIndex:row];
return cell;
}
/2/썸네일이 삽입된것을 리스트에 넣을때.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
// 이 문자열은 테이블 셀의 종류를 나타내는 키로 쓰인다.
static NSString *SimpleTableIdentifier = @"SimpleTableIdentifier";
// 이러한 방법을 사용하기 위해서 디큐(dequeue)된 셀중에서 필요한 타입을 테이블 뷰에서 얻어야 한다. (SimpleTableIdentifier)
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:SimpleTableIdentifier];
if(cell == nil) {
// 썸네일 삽입
cell =[[UITableViewCell alloc]initWithFrame:CGRectZero reuseIdentifier:SimpleTableIdentifier] ;
}
// cell에 이미지를 추가한다.
// UIImage는 파일 이름을 기반으로 캐시 기술을 사용하므로, 매번 새 이미지를 로딩하지 않을것이다. 대신 캐쉬된 이미지를 사용할 것이다.
UIImage *image = [UIImage imageNamed:@"star.png"];
cell.imageView.image = image;
// 해당 cell이 선택되었을때 이미지 추가
// UIImage *highlightedImage = [UIImage imageName:@"star2.png"];
// cell.imageView.highlightedImage = highlightedImage;
// 어떤 행의 값을 사용할 것인지 결정
NSInteger row = [indexPath row];
// 테이블뷰에 내용 뿌리는것
cell.textLabel.text = [listData objectAtIndex:row];
return cell;
}