1

我正在使用Alex Barinovs聊天气泡表视图示例的聊天应用程序。我可以在气泡上添加消息和图像。但我想要的是当我点击任何行或单元格时,我想获取我点击的那个特定单元格的详细信息。我有一个名为 onListTap 的方法,这是一种UItapGestureRecognizer方法,我可以在点击时获取表视图的索引路径。但是它在那个单元格上返回的数据有点像这样——

    tapped cell data - <NSBubbleData: 0x7fe6c3160f10>

谁能告诉我如何读取这个(NSBubbleData)数据以及如何识别它是哪种类型的数据(图像、文本、视图等)。

这是我的 onListTap 方法:

- (void)onListTap:(UIGestureRecognizer*)recognizer {
if (recognizer.state == UIGestureRecognizerStateEnded) {
    CGPoint tapLocation = [recognizer locationInView:_bubbleTable];
    NSIndexPath *tapIndexPath = [_bubbleTable indexPathForRowAtPoint:tapLocation];
        NSLog(@" tapped cell data - %@",[newMessageArray objectAtIndex: tapIndexPath.row]);

}
}

其中,newMessageArray是我的气泡表视图数组。

4

2 回答 2

1

检查这个,我认为它会工作。您可以获得单元格中的文本和图像不要忘记#import "UIBubbleTableViewCell.h"

- (void)onListTap:(UIGestureRecognizer*)recognizer {
    if (recognizer.state == UIGestureRecognizerStateEnded) {
        CGPoint tapLocation = [recognizer locationInView:_bubbleTable];
        NSIndexPath *tapIndexPath = [_bubbleTable indexPathForRowAtPoint:tapLocation];
        UIBubbleTableViewCell *cell = [_bubbleTable cellForRowAtIndexPath:tapIndexPath];
        for (id Obj in cell.contentView.subviews) {
            if ([Obj isKindOfClass:[UILabel class]]) {
                UILabel *Lbl = (UILabel *)Obj;
                NSLog(@"%@",Lbl.text);
            }
            if ([Obj isKindOfClass:[UIImageView class]]) {
                UIImageView *Img = (UIImageView *)Obj;
                //Do Something with Img.image
            }
        }
    }
}
于 2016-10-14T10:26:46.357 回答
0

在 Alex Barinovs 聊天气泡表视图中,他们已将其用作NSBubbleData维护值的对象。当您选择任何单元格时,您将获得NSBubbleData对象 i。我希望你正在NSBubbleData用你的值构建数组。通过获取单元格indexPath,您可以从用于构造NSBubbleData.

NSBubbleData对象中您无法获取文本、图像。但是您可以获得日期、类型和视图。

于 2016-10-14T10:26:15.783 回答