テーブルビューセルのサイズを変更して、すべてのメッセージを表示する方法を知りたいです。アプリがサーバー上のxmlからメッセージを取得していると表示されますが、メッセージがテキストフィールドより長い場合は表示されます。ここに3つのドットが私のコードです:
- (NSInteger)tableView:(UITableView *)myTableView numberOfRowsInSection:(NSInteger)section {
return ( messages == nil ) ? 0 : [messages count];
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return 37;
}
- (UITableViewCell *)tableView:(UITableView *)myTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = (UITableViewCell *)[self.messageList dequeueReusableCellWithIdentifier:@"ChatListItem"];
if (cell == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"ChatListItem" owner:self options:nil];
cell = (UITableViewCell *)[nib objectAtIndex:0];
}
NSDictionary *itemAtIndex = (NSDictionary *)[messages objectAtIndex:indexPath.row];
UILabel *textLabel = (UILabel *)[cell viewWithTag:1];
textLabel.text = [itemAtIndex objectForKey:@"text"];
UILabel *stextLabel = (UILabel *)[cell viewWithTag:3];
stextLabel.text = [itemAtIndex objectForKey:@"text"];
UILabel *userLabel = (UILabel *)[cell viewWithTag:2];
userLabel.text = [itemAtIndex objectForKey:@"user"];
UILabel *suserLabel = (UILabel *)[cell viewWithTag:4];
suserLabel.text = [itemAtIndex objectForKey:@"user"];
if ([usernameText.text isEqualToString:userLabel.text]){
UIImageView* img = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"chat1@2x.png"]];
[cell setBackgroundView:img];
[img release];
textLabel.hidden=NO;
stextLabel.hidden=YES;
userLabel.hidden=NO;
suserLabel.hidden = YES;
}
else{
UIImageView* img = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"chat2@2x.png"]];
[cell setBackgroundView:img];
[img release];
textLabel.hidden=YES;
stextLabel.hidden=NO;
userLabel.hidden=YES;
suserLabel.hidden = NO;
}
return cell;
}
ありがとう