2013-10-09 35 views
2

我必须实现气泡消息与senders AVATARSender's name with time-stamps相同的屏幕截图。我已成功实施simple bubble type messaging。现在我有一些很好的Git-hub项目可以提供给我,但我需要的却是不同的东西。我曾经使用acanichat但没有运气。气泡消息与头像图像和头像名称与时间戳

所以任何人都可以为我提供相同的好教程吗?或者任何人已经通过这个Git-hub Library或者任何其他库来做到这一点?

我想要一个带有senders AVATARSender's name with time-stamps的气泡消息,请看下面的图片。

enter image description here

你的建议是明显的。

+0

当人们不能回答question..they只是觉得它的题外话......我敢打赌,你......有太多人寻找这样的事情avtar和所有类型的泡沫聊天设施...其非常粗鲁的行为... –

回答

1

为什么不创建自己的聊天表?你只需要创建两个自定义的单元格,并在XIB文件的帮助下,你可以给你任何你想要的。

使用差异和条件如下。

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

{ 

static NSString *CellIdentifier1 = @"Cell1"; 
static NSString *CellIdentifier2 = @"Cell2"; 

CGSize boundingSize = CGSizeMake(messageWidth-20, 10000000); 
CGSize itemTextSize = [messageText sizeWithFont:[UIFont systemFontOfSize:14] 
           constrainedToSize:boundingSize 
            lineBreakMode:NSLineBreakByWordWrapping]; 
float textHeight = itemTextSize.height+7; 


if (messageType isEqualToString:@"textByme"]) { 

CustomCell1 *cell = (CustomCell1 *)[self.tableview dequeueReusableCellWithIdentifier:CellIdentifier1]; 

     if (cell == nil) { 
      NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomCell1" owner:self options:nil]; 
      cell = [topLevelObjects objectAtIndex:0]; 
     } 



UIImageView *bubbleImage=[[UIImageView alloc] initWithImage:[[UIImage imageNamed:@"chatbubble"] stretchableImageWithLeftCapWidth:15 topCapHeight:15]]; 
     bubbleImage.tag=55; 
     [cell.contentView addSubview:bubbleImage]; 
     [bubbleImage setFrame:CGRectMake(255-itemTextSize.width,5,itemTextSize.width+10,textHeight)]; 
    UITextView *messageTextview=[[UITextView alloc]initWithFrame:CGRectMake(250-itemTextSize.width,0,itemTextSize.width+15, textHeight)]; 
     [cell.contentView addSubview:messageTextview]; 
     messageTextview.editable=NO; 
     messageTextview.text = messageText; 
     messageTextview.dataDetectorTypes=UIDataDetectorTypeAll; 
     messageTextview.textAlignment=NSTextAlignmentJustified; 
     messageTextview.font=[UIFont fontWithName:@"Helvetica Neue" size:13.0]; 
     messageTextview.backgroundColor=[UIColor clearColor]; 
     messageTextview.tag=indexPath.row; 
     cell.Avatar_Image.image=[UIImage imageNamed:@"avatar.png"]; 
     cell.time_Label.text=data.messageTime; 
     cell.selectionStyle=UITableViewCellSelectionStyleNone; 
     messageTextview.scrollEnabled=NO; 

    return cell; 


} 
else{ 

CustomCell2 *cell = (CustomCell2 *)[self.tableview dequeueReusableCellWithIdentifier:CellIdentifier2]; 

     if (cell == nil) { 
      NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomCell2" owner:self options:nil]; 
      cell = [topLevelObjects objectAtIndex:0]; 
     } 



    UIImageView *bubbleImage=[[UIImageView alloc] initWithImage:[[UIImage imageNamed:@"chatbubble"] stretchableImageWithLeftCapWidth:15 topCapHeight:15]]; 
     [cell.contentView addSubview:bubbleImage]; 
     [bubbleImage setFrame:CGRectMake(50,5, itemTextSize.width+10, textHeight)]; 
     bubbleImage.tag=56; 

     UITextView *messageTextview=[[UITextView alloc]initWithFrame:CGRectMake(50,0,itemTextSize.width+15, textHeight)]; 
     [cell.contentView addSubview:messageTextview]; 
     messageTextview.editable=NO; 
     messageTextview.text = messageText; 
     messageTextview.dataDetectorTypes=UIDataDetectorTypeAll; 
     messageTextview.textAlignment=NSTextAlignmentJustified; 
     messageTextview.backgroundColor=[UIColor clearColor]; 
     messageTextview.font=[UIFont fontWithName:@"Helvetica Neue" size:13.0]; 
     messageTextview.scrollEnabled=NO; 
     messageTextview.tag=indexPath.row; 
     cell.Avatar_Image.image=[UIImage imageNamed:@"avatar"]; 
     cell.time_Label.text=feed_data.messageTime; 
     cell.selectionStyle=UITableViewCellSelectionStyleNone; 

    return cell; 

} 

} 

身高:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
float cellHeight; 
     // text 
     NSString *messageText = @"Your text"; 
     // 
     CGSize boundingSize = CGSizeMake(messageWidth-20, 10000000); 
     CGSize itemTextSize = [messageText sizeWithFont:[UIFont systemFontOfSize:14] 
             constrainedToSize:boundingSize 
              lineBreakMode:NSLineBreakByWordWrapping]; 

     // plain text 
     cellHeight = itemTextSize.height; 

     if (cellHeight<25) { 

      cellHeight=25; 
     } 
     return cellHeight+30; 
} 
+0

是的,我有点实施它..但我唯一的问题是动态大小的泡沫图像 –

+0

你可以计算通过高度,检查我的编辑答案。 –

+0

ok thnx..will.implement it ... –