2012-03-30 1 views
2

私は非常に奇妙な問題を抱えていますが、これはセルの正常な動作に厄介かどうかわかりません。この質問に愚かなことがあれば、謝罪してくれます。通常、テーブルビューのセルに触れると、それはビューコントローラ/コード化されたコントローラに移動します。ここでは何が奇妙ですそれは選択に反応していませんまたはtouch.IはIBまたはnot.Iで選択されている編集中に選択を許可するかどうかをチェックしている私はそれを選択しました、今ここでひねりは、代わりに私はそれを横にスワイプするとき/私は長い間セルを押すと、それはナビゲートしている、この奇妙な行動に本当に驚いた!私はテーブルビューの仕事でセルの選択をするためにそれをスワイプする必要がある理由を理解していない。また、テーブルビューの下にあるボタンでペインティングする!Strange Behavior - UITableViewCellのロータッチが応答しないようにしました

私は、私の場合と同様の問題で検索しましたが、私はそれがどのようなI、この方法を確認するために提案さ

-(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath 

しかし、私は全くそのメソッドを実装していないしてそこにちょうど1 questionを見つけました

@interface ViewController : AddController 

を今それがあったので、次のように実際にいくつかの属性や文字列などにアクセスするため、私はAddControllerと呼ばれるコントローラを持っているいくつかの項目、、とタブバーが..ですコントローラに宣言している、私はそれをサブクラス化しています質問で指定された私は見ました。サブクラスのコントローラページで同じコードをコピーしているかどうかをチェックするために、サブクラス化について話しました。

この問題を解決し、テーブルビューのセルを通常のタッチに対応させる方法を教えてください。どんな助けでも大歓迎です!すべて事前に

感謝:)

答えて

4

いくつかの調査をした後、私はかなりテーブルビューのUITapGestureRecognizerが問題を引き起こしたと確信しています。あなたは私がセル内のテキストフィールドを持つとキーボードを閉じるにはUITapGestureRecognizerを使用してのようだった場合は、ここに私のソリューションです:

あなたは

UITextFieldDelegateを実装ビューで(私の場合、私はと呼ばれるカスタムUITableViewCellを持っていますTextFieldCell)、

はプロパティとしてUITapGestureRecognizerを宣言します。

@interface TextFieldCell : UITableViewCell <UITextFieldDelegate> 
{ 
    UITextField *theTextField; 
    UITapGestureRecognizer *gestureRecognizer; 
} 
@property (nonatomic,retain) UITextField *theTextField; 
@property (nonatomic,retain) UITapGestureRecognizer *gestureRecognizer; 

そして、あなたのビューでそれを初期化します。

方法では
self.gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(closeKeyboard:)]; 

、あなたのtableViewまで移動し、addGestureRecognizerを呼び出すためにsuperViewを使用します。

[self.superview.superview addGestureRecognizer:gestureRecognizer]; 

そして- (void)textFieldDidEndEditing:(UITextField *)textFieldで、ちょうどジェスチャー認識を削除します。

[self.superview.superview removeGestureRecognizer:gestureRecognizer]; 

この意志完全に問題を解決する。

+0

Mr.Hac.Jackありがとう、それは働いた、それは問題でした、あなたのコードスニペットの助けを借りてそれを修正、懸念のためにたくさんの:) –

1

はあなたのtableViewにUITapGestureRecognizerを使用しましたか?私は今日とまったく同じ問題を抱えていました。そして、それをタップして行を選択するという私の意図をぼかすのはジェスチャー認識プログラムだと分かりました。私はそれを削除すると、tableViewは正常に戻っていた。

これが役に立ちます。

+0

私は "UITapGestureRecognizer" Mr..Hac Jack.Gladを使用しました.URLコードを実装することで、あなたはそれを察知しました。私は問題を解消できました.UUのおかげで感謝します:) –

+0

私はそれを嬉しく思いますあなたのために固定。乾杯! –

0

私はこの同じ問題を抱え、テーブルビューの属性で「スクロール有効」にチェックを入れて解決しました。

私のテーブルビューはスクロールする必要がないため、スワイプジェスチャの後に最初に反応しないタップは表示されませんが、他の方法ではアプリケーションには影響しません。