2013-12-09 6 views
6

UITableViewUITableViewCellをサブクラス化しています。私は約千倍の前にそれをしなかったが、今私はこのデリゲートイベントをキャッチしようとしています:UITableViewCellがイベントの遅延を選択しました

セルはこのコールバックをタッチする
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath; 

が呼び出されるべきです。 しかし、私は6秒または6回のタッチのように私が押している場合にのみ呼び出されますが、すべてのタッチではありません。

テーブルビューは、サブクラス化UIViewのサブビューであり、私はawakeFromNibでこれを呼び出す:

-(void)awakeFromNib{ 
_table_view.delegate = self; 
_table_view.dataSource = self; 
} 

テーブルビューだけで罰金自体を描画するが、このイベントではうまく機能していません。 アイデア?セルは、この呼び出しが起こるはずタッチすると、ここで

UITableViewCellサブクラスコード.Mは

#import "FLBlockedPersonCell.h" 

@implementation FLBlockedPersonCell 

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 
{ 
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
    if (self) { 
     // Initialization code 
    } 
    return self; 
} 

- (void)setSelected:(BOOL)selected animated:(BOOL)animated 
{ 
    [super setSelected:selected animated:animated]; 

    // Configure the view for the selected state 
} 


- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated{ 
    [super setHighlighted:highlighted animated:animated]; 
} 



@end 

答えて

2

です:

-(void) tableView:(UITableView*) tableView didHighlightRowAtIndexPath:(NSIndexPath*) indexPath 

didSelectは、あなたが本当にただタップではない、セルを選択した場合にのみ起動しますそれ。また、shouldHighlightやwillSelectのようないくつかのメソッドは、タッチ時に呼び出されます。

+0

プレスが1秒後にセルがハイライト表示されたときに表示されます。セルに触れると表示されます。 –

+1

shoudlHighlightはどうですか? –

1

まず、tableView.allowsSelectionYESに設定されていることを確認してください。

UITableViewのサブビューであるUIViewがタッチイベントをブロックしていると私に聞こえます。

UIViewサブクラスがタッチイベントをキャプチャしていないことを確認する必要があります。私はあなたのUIViewサブクラスからこれらのメソッドのいずれかを削除しないだろう:

touchesBegan:withEvent: 
touchesMoved:withEvent: 
touchesEnded:withEvent: 
touchesCancelled:withEvent: 

あなたは、このメソッドを実装する場合、私はまた、NOを返します:

- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer 
{ 
    return NO; 
} 

あなたは本当にいずれかのこれらのメソッドをオーバーライドする必要はありません。

hitTest:withEvent: 
pointInside:withEvent: 

あなたがいる場合は、質問し、それらを削除してください。

+0

ここで言及したことはすべて実行しましたが、これはまだ同じです –

+0

@or azran質問にUITableViewCellサブクラスのコードを配置します。 –

+0

ここにコードがあります –

7

あなたがUITapGestureRecognizerを触ったときに、UITapGestureRecognizerを最初のレスポンスに追加することがあります。

+0

これは私がこれを把握したい場合には痛みになります。 –

+0

ビューにUITapGestureRecognizerがある場合は、これを解決するためにrecognizer.cancelsTouchesInView = falseを設定します。 – Harris

関連する問題