0

テーブル ビューの各セルにラベルと画像を作成しました。画像がクリックされた場合、そのセルを参照するラベル データが必要です。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UILabel *phone=[[[UILabel alloc]initWithFrame:CGRectMake(10, 95, 320,15)]autorelease];

    phone.font=[UIFont boldSystemFontOfSize:12];
    [phone setTextAlignment:UITextAlignmentLeft];
    [phone  setText:[d valueForKey:@"Phone"]];
    [cell addSubview:phone];

    myImageView.image = [UIImage imageNamed:@"call.png"];
    cell.imageView.image=myImageView.image;
    cell.imageView.userInteractionEnabled=YES;

    UITapGestureRecognizer *tapped = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageSelectedInTable:)];

    [cell.imageView addGestureRecognizer:tapped];
    [tapped release];
}

-(IBAction)imageSelectedInTable:(UITapGestureRecognizer*)gesture
{
    NSLog(@"Selected an Image");

    UIImageView *imgView = (UIImageView *) [gesture view];
    UITableViewCell *cell = (UITableViewCell*)[[imgView superview]superview];
    NSIndexPath *tappedIndexPath = [self.tableView indexPathForCell:cell];
    NSLog(@"Image Tap %@", tappedIndexPath);
}

しかし、ラベルデータを取得する方法ありがとう

4

1 に答える 1

0

cellForRowAtIndexPath で「セル」を取得している場所など、コードにいくつか問題があるようです。そうは言っても、当面の問題を解決するには、 cellForRowAtIndexPath 内の電話ラベルにタグを追加できます。たとえばphone.tag = 5;、ジェスチャ認識メソッド内に を追加しUILabel *phone = (UILabel *)[cell viewWithTag:5];ます。これで、そのセルのラベルへの参照ができました。

于 2013-04-03T22:20:50.463 に答える