Frage

Ich habe ein seltsames Problem, bei dem eine individuelle Steuerung ich für das iPhone gebaut haben perfekt funktioniert, wenn im Debug-Modus Aufbau funktioniert aber nur teilweise gebaut, als im Release-Modus.

Der Haupt Wrapper-Ansicht ist eine Unterklasse von UIView und enthält eine Reihe von „Tasten“, die als Subviews hinzugefügt werden. Die benutzerdefinierte Schaltfläche Klasse erweitert UIImageView und überschreibt die Touch-Methoden mit folgenden Signaturen:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event

Wenn Debug-Code erstellen, alle 4 dieser Funktionen zu den Zeiten aufgerufen werden Sie es erwarten würden, mit einem Release-Build, passiert nichts. Ich habe in jedem von ihnen anmelden und ich bin immer noch keine Log-Meldungen (andere Protokollierung funktioniert).

Eine weitere interessante Sache, habe ich die touchesBegan / Verschoben / Ended in der Wrapper-Ansicht Klasse überschrieben Methoden und sie arbeiten gut. Ich habe versucht, diese Methoden in der Wrapper-Klasse zu kommentieren zu sehen, ob es einen Einfluss auf den Tasten hatte, aber es kam nicht.

Ich habe auch versucht, die Änderung der UIImageView Klasse eine Unterklasse von UIButton anstatt zu sein, aber das gleiche Problem dort habe, alle Ereignisse wie touchUpInside. Sie arbeiten im Debug, aber nicht freigeben.

Ich habe versucht, dieses Problem sowie allgemeine Ereignisbehandlung untersucht, und haben kommen mit leeren Händen. Irgendwelche Ideen, wo sie suchen weiter?

War es hilfreich?

Lösung

ich das Problem endlich herausgefunden - die Wrapper für den „Button“ Artikel hatte eine Höhe von 0. Im Debug-Modus, rechnete die App aus, dass die Tasten selbst sind berührt worden ist, obwohl sie nicht in dem Hit-Bereich ihres waren geordneten Ansicht (clipsToBounds die Schaltfläche Artikel noch gut sichtbar vorbelegt wurde NO so waren), im Release-Modus, nicht so sehr.

Hoffentlich kann dies dazu beitragen, einige Leute den Kopf speichern Kratzen und Debugging-Zeit, die ich durchmachen musste :) Ich habe dies auch bei Apple einen Bug geschrieben, so wird es hoffentlich eines Tages festgelegt werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top