본문 바로가기

General/iOS

[iPhone] TableView CustomCell delegate, datasource connection (View based application)


테이블 뷰 만들기로 아이폰 프로그래밍 공부를 시작한지 이틀.
드디어 커스텀 셀에 성공했습니다.

사실 커스텀은 거의 바로 되었지만, 
셀 크기 조절이 되지 않아, 그것에만 하루가 넘게 걸렸지요.

어찌되었든, 1단계 목표를 달성하였군요.

- 테이블 뷰 만들기 -
- 테이블 뷰, 테이블 뷰 셀 커스텀 하기 -
- 파싱해온 내용 테이블 뷰에 띄우기 -
- 파싱해온 내용 길이(크기)에 맞추어 셀 높이(height) 조절하기

여기까지 입니다. 아래의 이미지는 결과적으로 보게 될 화면입니다.
아직 이미지는 추가하지 않았습니다.





오늘 스터디 내용의 키는 "델리게이트"와 "데이터소스"였습니다.
그리고 더 중요한 file's owner.

델리게이트는 코드가 UI를 조작할 수 있는 대리자가 되도록 지정해 주는 것이고,
데이터소스는 코드가 델리게이트가 되어 UI를 조작할 때 사용되는 데이터입니다.

xib(nib)파일은 ?.m / ?.h 두개의 파일과 1:1로 맵핑됩니다.
이때, xib의 file's owner는 정말 "주인"처럼 이들을 관리해주는 역할을 해 줍니다.
근본없는 자신감으로 아무것도 없이 아이폰 공부를 시작해 테이블 뷰를 찍어내려던 저는,
델리게이트를 테이블 뷰에 지정해버렸었고, 이로 인해 셀이 제대로 처리되지 않았었죠.
어찌되었는 이런 델리게이트와 데이터소스의 처리를 끝내고,
이미지까지 불러들여서 화면에 찍고 난 지금의 화면은 이렇게 바뀌었습니다.







image url을 UIImage로 바꿔서 셀에 넣는 코드


 NSURL *imageUrl = [NSURL URLWithString:url];

 NSData *data = [NSData dataWithContentsOfURL:imageUrl];

 UIImage *image = [[UIImage allocinitWithData:data];  


 [cell.userImage setFrame:CGRectMake(7.0f, 7.0f, 35.0f, 35.0f)];

 cell.userImage.image = image;




중요한 것 - 델리게이트와 데이터소스

 @interface TweetList : UITableViewController <UITableViewDelegate, UITableViewDataSource> 

 {

NSArray *tweetArray;

 }


 - (id) initWithTweetArray:(NSArray *)result;


 @property (nonatomic, retain) NSArray *tweetArray;


 @end 
헤더 파일엔 이런식으로 항상 지시해주는 문장이 있어야 합니다.



그리고 역시 중요한 xib에서 테이블뷰에 대한 델리게이트(데이터소스 역시)를 

File's Owner와 연결해 주는것!























- ViewController.m 에서 데이터(셀의 각 UI Object에 들어갈) 셋팅하기

- 새로운 ViewController

- TableView의 델리게이트와 데이터소스

- 셀의 UI구성하기

- TableView code에서 각 셀별 데이터 셋팅하기

  (method들을 override해서 여러 설정들 해주기)


'General > iOS' 카테고리의 다른 글

[iPhone] parsing, tableview  (0) 2010.12.26
[iPhone] 메모리 관리  (0) 2010.12.21
[iPhone] about TableView  (0) 2010.12.21
[iPhone] TableView Custom Cell 만들기  (0) 2010.12.20
[iPhone] Table View  (0) 2010.12.19