2012-03-30 8 views
2

Ich habe ein sehr seltsames Problem, ich weiß nicht, ob es um das normale Verhalten der Zellen unangenehm ist oder nicht, es scheint, als ob es so ist! Daher gebe ich es ist bis zu jemandem, der antworten kann, entschuldigen Sie sich, wenn etwas dummes beim Stellen dieser Frage. Normalerweise, wenn wir eine Tabellenansichtzelle berühren, was geschieht, ist es zu einem Ansichtsteuerpult/einem Steuerpult, das kodiert wird, navigiert Es reagiert nicht auf Auswahl oder Touch. Ich habe überprüft, ob die Auswahl während der Bearbeitung in IB ausgewählt ist oder nicht. Ich habe es ausgewählt. Jetzt ist der Unterschied hier, wenn ich eine Tabellenansichtszelle berühre, die nicht reagiert. statt dessen, wenn ich es horizontal wische/wenn ich die Zelle lange drücke, navigiert es, wirklich überrascht über dieses seltsame Verhalten! Ich verstehe nicht den Grund, warum ich es wischen muss, um die Zelle in der Tabellenansicht arbeiten zu lassen auch hap mit Knopf unterhalb der Tischansicht!Seltsames Verhalten-Wählt Zeile berühren nicht reagiert für UITableViewCell

Ich habe Probleme ähnlich wie meinem Fall gesucht, aber ich fand nur ein question dort vorgeschlagen wurde für diese Methode zu überprüfen,

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

Aber ich umgesetzt haben nicht diese Methode überhaupt, was ich tatsächlich eine Tab-Leiste mit mehreren Positionen ist, wo ich einen Controller namens AddController haben, für etc mehrere Attribute und Strings Zugriff auf .. in der Steuerung erklärt, ich bin Subklassen wie folgt: Jetzt

@interface ViewController : AddController 

weil es in der Frage angegeben Ich sah, d. die Verbindung, die ich gab, um zu überprüfen, ob Sie den gleichen Code in der Unterklassen-Controller-Seite kopieren, sprach ich über Unterklassen und was ich getan habe, hoffe jeder versteht es!

Kann mir bitte jemand helfen, wie man aus diesem Problem herauskommt, und machen Tabellenansicht Zelle reagieren auf normale Berührungen, jede Hilfe wird sehr geschätzt!

Dank alle im Voraus :)

Antwort

4

Nach einigen Recherchen bin ich mir ziemlich sicher, dass es die UITapGestureRecognizer auf dem TableView ist, die Sie das Problem verursacht.Wenn Sie wie ich waren in der Zelle das Textfeld mit und die UITapGestureRecognizer über die Tastatur zu schließen, hier ist meine Lösung:

In der Ansicht, die Sie UITextFieldDelegate implementiert

(In meinem Fall habe ich eine benutzerdefinierte UITableViewCell genannt TextFieldCell),

Deklarieren sie eine UITapGestureRecognizer als Eigenschaft:

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

und initialisieren es aus Ihrer Sicht:

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

Im - (void)textFieldDidBeginEditing:(UITextField *)textField Methode verwenden superView auf Ihre Tableview zu bewegen und rufen addGestureRecognizer:

[self.superview.superview addGestureRecognizer:gestureRecognizer]; 

Und im - (void)textFieldDidEndEditing:(UITextField *)textField, sondern nur die Gestenerkenner entfernen:

[self.superview.superview removeGestureRecognizer:gestureRecognizer]; 

Dieser Wille das Problem vollständig lösen.

+0

Vielen Dank HerrHac.Jack, es hat funktioniert und das war das Problem, repariert es mit Hilfe Ihres Code-Snippets, vielen Dank für die Sorge :) –

1

Haben benutzen Sie einen UITapGestureRecognizer auf Ihrem Tableview? Ich hatte genau das gleiche Problem wie heute, und dann stellte ich fest, dass es der Gestenerkenner war, der meine Absicht, eine Zeile durch Tippen auszuwählen, verschleierte. Als ich es entfernte, war das TableView wieder normal.

Hoffe, das hilft.

+0

Ja, ich „UITapGestureRecognizer“ Mr..Hac Jack.Glad verwendet, dass man spekuliert, es vor Ort auf, ja von ur-Code Implementierung, ich war in der Lage, das Problem zu beseitigen, dankt u Dank viele :) –

+0

Ich bin froh, dass es für dich behoben. Prost! –

0

Ich hatte das gleiche Problem und löste es, indem ich "Scrolling Enabled" in den Tabellenansichtsattributen aktivierte.

Meine Tabellenansicht muss nicht gescrollt werden, so dass die App keine anderen Auswirkungen hat, außer jetzt bekomme ich nicht die erste nicht reagierende Berührung nach einer Wischgeste.