2

私はカスタムUITableViewCellを持っています、私はUITableViewCellをサブクラス化しました:

MyCustomCell.h

MyCustomCell:UITableViewCell

そして、このカスタムセルのxibファイルもあり、すべて正常に動作し、すべての情報とセルに追加した画像を表示できますが、ユーザーがuiimageviewに触れたときにタッチを検出したいので、試しましたこの上:

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

static NSString *CellIdentifier = @"MasterView";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell == nil) {
    cell = [[MasterViewCell alloc] init];
    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"MasterViewCustomCellImage" owner:self options:nil];
    cell = (MasterViewCell *)[nib objectAtIndex:0];
    //NSLog(@"Nuova Cella");
}

[self configureCell:cell atIndexPath:indexPath];

return cell;
}

 - (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath
 {
NSManagedObject *managedObject = [self.fetchedResultsController objectAtIndexPath:indexPath];

UIImageView *thumbnailImage = (UIImageView *)[cell viewWithTag:1007];
[thumbnailImage setImage:[managedObject valueForKey:@"myImage"]];

if (thumbnailImage) {

    UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(detectTouchImage)];
    [longPress setMinimumPressDuration:1.0];
    [thumbnailImage setUserInteractionEnabled:YES];
    [thumbnailImage addGestureRecognizer:longPress];
}

 }

-(void)detectTouchImage
{
 NSLog(@"Image Pressed");
 }

しかし、なぜ機能しないのか理解できません。サムネイル画像に入力されますが、画像にジェスチャが検出されません...誰かが私を助けることができますか? iOS 5 と iOS 6 で試しましたが、うまくいきません...

4

2 に答える 2

0

問題は、おそらくセルがタッチをハイジャックしていることです。didSelectCellForRowメソッドが呼び出されているかどうか、またはタップしたときに行が強調表示されているかどうかを確認できますか? UILongPressGestureRecognizerまた、画像ではなくセルに を割り当ててみてください。それが機能するが、親指の画像がタップされたときにのみタップを呼び出したい場合は、クラスにlocationInView実装されたメソッドを使用して、ユーザーがタップした場所を正確に確認できます。UIGestureRecognizer

于 2012-10-02T09:55:28.140 に答える
-1

問題がどこにあるかを確認するためのテストプロジェクトを作成しました。
完全に機能する例は、GitHub にあります。ダウンロードして遊んでください。TableViewCell には、UILongPressGestureRecognizer がアタッチされたカスタム UIImageView があります。すべてがうまく機能しています。任意の画像を長押しすると、UIIAllertView がポップアップします。したがって、UILongPressGestureRecognizer を使用したコードは問題ないようです。問題は、公開していないプロジェクトの他の部分にあります。

于 2012-10-02T11:01:56.757 に答える