2016-10-14 2 views
1

私はAlex Barinovsチャットバブルテーブルビューの例を使っているチャットアプリケーションに取り組んでいます。私は気泡にメッセージと画像を追加することができます。しかし、私が望むのは、私が任意の行またはセルをタップすると、私がタップしたその特定のセルの詳細を取得したいのです。私はUItapGestureRecognizerメソッドであるonListTapというメソッドを持っています。私はタップでテーブルビューのインデックスパスを取得できます。しかし、それはそのセルに返すデータが多少のようなものですバブルテーブルビューのセルタップでNSBubbledataを読む

tapped cell data - <NSBubbleData: 0x7fe6c3160f10> 

は誰がどのようにこの(NSBubbleData)データを読み取るために、どのようにそれが(画像、テキスト、図、データの種類を識別するために、私に教えてくださいできthis-、等)。

- (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は私のバブルテーブルビューの配列です:

は、ここに私のonListTap方法です。

+0

に忘れてはいけない。この行を取得することができます。配列に格納されているオブジェクトを常に返します。どのオブジェクトが配列に格納されているかを表示して、私があなたを助けることができるかもしれません。 –

+0

NSBubbleData * sayBubble = [NSBubbleData dataWithText:_txtchat.text date:[NSDate dateWithTimeIntervalSinceNow:0]タイプ:BubbleTypeMine]; [newMessageArray addObject:sayBubble];ここで_txtchatはテキストを送信するテキストフィールドです。 –

+0

配列にNSBubbleDataを格納すると、同じ結果が得られます これは、内部にあるものを表示するために使用できます NSBubbledata * test = [newMessageArray objectAtIndex:tapIndexPath.row]; NSLog(@ "result:"、test); –

答えて

1

これを確認して、うまくいくと思います。あなたはのNSLog( "タップセルデータ - %の@" @、[newMessageArray objectAtIndex:tapIndexPath.row])セル にあるテキストや画像を#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 
      } 
     } 
    } 
} 
+0

もう一度質問してもらえますか?私は、各バブルの一番下に、ラベルを追加したり、チャットバブルを見ることができません。これで私を助けてもらえますか?お願いします。 –

+0

@AmuuuGaikwadはい、別の質問を追加することができますので、私はラベルのためのあなたのコードを見ることができ、それぞれのバブルの下に追加したいものを見ることができます。 –

+0

@ ChiragDjinjuwadiya-あなたはこの質問を参照してください、私はスタックオーバーフローに追加しました - [iOSのチャットバブル(セル)にサブビューを追加]。 –

0

Alex Barinovsチャットバブルテーブルビューでは、値を維持するオブジェクトとしてNSBubbleDataを使用しています。いずれかのセルを選択すると、NSBubbleDataオブジェクトが取得されます。私はあなたの値でNSBubbleData配列を構築していることを願っています。セルをindexPathにすることによって、NSBubbleDataの構築に使用した配列から値を取得できます。

NSBubbleDataオブジェクトでは、text、imageを取得できません。しかし、あなたは日付、タイプ、およびビューを得ることができます。