UITableView 사용방법
1. 스토리보드에 테이블뷰를 추가한다.
2. 데이터소스와 델리게이트를 뷰콘트롤러와 연결한다.
아래와 같이 뷰콘트롤러와 연결한다. 이게 빠져서 한참을 헤매인 적이 있다.
3. 테이블뷰의 속성을 설정한다.
적색으로 표시한 부분을 추가한다.
5. 변수 동기화 내용을 추가한다.
2. 데이터소스와 델리게이트를 뷰콘트롤러와 연결한다.
아래와 같이 뷰콘트롤러와 연결한다. 이게 빠져서 한참을 헤매인 적이 있다.
3. 테이블뷰의 속성을 설정한다.
색 표시 된 곳의 설정을 해야 한다.
특히 Identifier의 값을 나중에 사용해야 하므로 유일한 값으로 설정하고
Style은 Subtitle로 설정한 이유는 이미지, 타이틀, 세부내역을 표시하기 위해서 이다.
4. 헤더파일을 설정한다.
#import <UIKit/UIKit.h>
@interface nemesisViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>
@property (nonatomic, strong) NSArray *menuImages;
@property (nonatomic, strong) NSArray *menuName;
@property (nonatomic, strong) NSArray *menuPrice;
@end
적색으로 표시한 부분을 추가한다.
5. 변수 동기화 내용을 추가한다.
@implementation nemesisViewController 바로 아래 적색글자를 추가한다.
@synthesize menuImages = _menuImages;
@synthesize menuName = _menuName;
@synthesize menuPrice = _menuPrice;
6. 시작 메소드에 값을 강제로 추가한다.
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
// 초기 데이터 강제 입력
self.menuName = [[NSArray alloc] initWithObjects:@"치킨", @"골뱅이", nil];
self.menuPrice = [[NSArray alloc] initWithObjects:@"24,000", @"25,000", nil];
self.menuImages = [[NSArray alloc] initWithObjects:@"image1.png", @"image2.png", nil];
}
7. 테이블 뷰 관련 메소드를 추가한다.
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
// 섹션의 수를 설정 보통 1개
return 1;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// 객체의 수가 몇 개인지 설정
return [self.menuName count];
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = (UITableViewCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}
// 셀에 나타낼 내용을 표시
cell.imageView.image = [UIImage imageNamed:[self.menuImages objectAtIndex:[indexPath row]]];
cell.textLabel.text = [self.menuName objectAtIndex:[indexPath row]];
cell.detailTextLabel.text = [self.menuPrice objectAtIndex:[indexPath row]];
return cell;
}
일단 위와 같이 하면 화면에 뷰를 추가하고 테이블에 내용을 표시할 수 있다.
처음에 보통 델리케이트와 데이터소스를 연결하지 않아 내용이 나타나지 않는 문제가
발생하여 애를 먹은 적도 있으므로 그부분을 잊지 말아야 한다.
댓글
댓글 쓰기