Skip to content
This repository has been archived by the owner on Mar 9, 2018. It is now read-only.

Added Name Tag under chat bubble #71

Open
unnikrishnan-anil opened this issue Apr 4, 2014 · 1 comment
Open

Added Name Tag under chat bubble #71

unnikrishnan-anil opened this issue Apr 4, 2014 · 1 comment

Comments

@unnikrishnan-anil
Copy link

I added a UILabel under the chat bubble like so:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

static NSString *CellIdentifier = @"Cell";

UIImageView *balloonView;
UILabel *label;
UILabel *name;

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    cell.selectionStyle = UITableViewCellSelectionStyleNone;
    tableView.separatorStyle = UITableViewCellSeparatorStyleNone;       

    balloonView = [[UIImageView alloc] initWithFrame:CGRectZero];
    balloonView.tag = 1;

    label = [[UILabel alloc] initWithFrame:CGRectZero];
    label.backgroundColor = [UIColor clearColor];
    label.tag = 2;
    label.numberOfLines = 0;
    label.lineBreakMode = UILineBreakModeWordWrap;
    label.font = [UIFont systemFontOfSize:14.0];

    UIView *message = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, cell.frame.size.width, cell.frame.size.height)];
    message.tag = 0;

    name = [[UILabel alloc] initWithFrame:CGRectZero];
    name.text = @"Test name";
    name.backgroundColor = [UIColor clearColor];
    name.tag = 3;
    name.numberOfLines = 1;
    name.lineBreakMode = UILineBreakModeTailTruncation;
    name.font = [UIFont systemFontOfSize:14.0];

    [message addSubview:balloonView];
    [message addSubview:label];
    [cell.contentView addSubview:message];
    [cell.contentView addSubview:name];
    [cell.contentView bringSubviewToFront:name];

    [balloonView release];
    [label release];
    [message release];
}
else
{
    balloonView = (UIImageView *)[[cell.contentView viewWithTag:0] viewWithTag:1];
    label = (UILabel *)[[cell.contentView viewWithTag:0] viewWithTag:2];
}

NSString *text = [messages objectAtIndex:indexPath.row];
CGSize size = [text sizeWithFont:[UIFont systemFontOfSize:14.0] constrainedToSize:CGSizeMake(240.0f, 480.0f) lineBreakMode:UILineBreakModeWordWrap];

UIImage *balloon;

if(indexPath.row % 2 == 0)
{
    balloonView.frame = CGRectMake(320.0f - (size.width + 28.0f), 2.0f, size.width + 28.0f, size.height + 15.0f);
    balloon = [[UIImage imageNamed:@"green.png"] stretchableImageWithLeftCapWidth:24 topCapHeight:15];
    label.frame = CGRectMake(307.0f - (size.width + 5.0f), 8.0f, size.width + 5.0f, size.height);
    name = (UILabel*) name;
    name.textAlignment = NSTextAlignmentRight;
}
else
{
    balloonView.frame = CGRectMake(0.0, 2.0, size.width + 28, size.height + 15);
    balloon = [[UIImage imageNamed:@"grey.png"] stretchableImageWithLeftCapWidth:24 topCapHeight:15];
    label.frame = CGRectMake(16, 8, size.width + 5, size.height);
}
name.frame = CGRectMake(10, balloonView.frame.size.height, 300, 30);

balloonView.image = balloon;
label.text = text;

return cell;

}

The app runs. But while scrolling, the UILabel gets converted into NSIndexPath and crashes :/

@DaCardinal
Copy link

Need help with this.!! Where did you put this code?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants