.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;
}


반응형