在Bubble Tableview单元格上阅读NSBubbledata

时间:2016-10-14 09:42:35

标签: ios objective-c iphone uitableview uibubbletableview

我正在使用聊天应用程序,我正在使用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 是我的bubble tableview数组。

2 个答案:

答案 0 :(得分: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
            }
        }
    }
}

答案 1 :(得分:0)

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

NSBubbleData对象中,您无法获取文字图片。但是你可以得到日期,类型和视图。