아이폰 채팅쪽을 구현하다가 마땅한 라이브러리가 없어서 직접 만들게 되었다.
하루만에 만들어서 그런지 아직은 추가할 부분이 많기는 하지만 이것저것 살좀 붙이다 보면
인터넷에서 돌아다니는 채팅화면보다는 쓸만할 것 같다 'ㅡ'
일단은 어느곳에서도 채팅창을 쉽게 띄울 수 있게 라이브러리(?) 형식으로 만들게 되었는데
채팅화면을 띄우려는 곳에 내가 만든 CTTableView를 UITableView에다가 상속을 받아서
사용하면 되고, 기존
tableView.delegate = self;
로 지정하여 사용하였던 것을
tableView.delegateCustom = self;
로 연결을 시켜주면 된다.
테이블뷰에 데이터넣는 방법은 CTTableView의 required 메소드인
-(NSArray)getData;를 추가해서 채팅 데이터 NSArray파일만 리턴시켜주면 자동으로 채팅 데이터가 쭈루룩 뜬다.
바로 이런식으로!
옆에 몇분전 몇분전 뜨는거는 지금 날짜&시간 테스트중이라서.......
getData를 통해서 NSArray를 던져줄때 배열안에 객체들을 Dictionary로 처리하지 않고
CTTableModel로 처리했다.
CTTableModel은 다음과 같다.
@interface CTDataModel : NSObject @property(nonatomic, copy) NSString *cUserName; // 사용자이름 @property(nonatomic, copy) NSString *cContent; // 대화내용 @property(nonatomic, strong) UIImage *cUserImage; // 사용자이미지 @property(nonatomic, assign) BOOL isUserName; // 사용자가 본인인지 확인, YES:본인, NO:상대방 @end
위 형식에 맞추어 데이터를 담고 NSArray에 하나하나 추가한뒤 getData를 통해
리턴을 시켜주면 된다.
// CTTableView.h @protocol CTTableViewDelegate @required -(NSArray *)getData; @end @interface CTTableView : UITableView < UITableViewDatasource, UITableViewDelegate > @property(nonatomic, strong) NSArray *data; @property(nonatomic, strong) id < CTTableViewDelegate > delegateCustom; -(void)initTableView; -(CGSize)dataSize:(NSString *)string; @end
위 소스는 CTTableView의 헤더파일
실제로 적용할때는 아래와 같이 사용하면 된다.
// // 예제 // // 스토리보드에서 사용하려는 UITableView에 // CTTableView를 상속받고 // IBOulet과 CTTableViewDelegate를 연결시켰다고 가정하에 작성한다. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. cTableView.delegateCustom = self; [cTableView initTableView]; } - (NSArray *)getData { NSMutableArray *dataArray = [[NSMutableArray alloc] init]; CTDataModel *chatData = [[CTDataModel alloc]init]; chatData.cUserName = @"puding1507"; chatData.cContent = @"동해물과 백두산이 마르고 닳도록 하나님이 보우하사 우리나라 만세"; chatData.isUserName = YES; chatData.cUserImage = [UIImage imageNamed:@"userImg.png"]; [dataArray addObject:chatData]; return dataArray; }
아직은 연습삼아 만든 것이고, 언제 글을 올렸는지 Date처리, 데이터를 불러올때 전체 데이터가
아닌 최근 데이터를 먼저 불러오고 상단으로 갈때마다 데이터 추가로드.
추가해야할 내용들이 산떠미이다 ㅜ_ㅜ 흐엉
힘들군..............=ㄴ=;;;
[iOS] 글자수에 따라 높이 가변길이 조절 (0) | 2013.02.13 |
---|---|
아이폰 개발자등록방법 (개인사업자용) (1) (8) | 2012.08.23 |
View & imgView Animation Effect (0) | 2012.01.02 |
댓글 영역