Ich habe eine Ansicht mit vielen Unteransichten. Ich möchte, dass alle Ansichten hervorgehoben werden, wenn der Benutzer tippt. Ich weiß, dass ich Subviews durchlaufen und hervorheben kann. Aber es ist nicht elegant. Also, wie kann ich das am besten erreichen? Irgendwelche Ideen?Wie man die Ansicht hervorhebt wie Tabellenansicht Zelle
0
A
Antwort
1
Haben die Unteransichten eine andere Farbe als die übergeordnete Ansicht? Wenn nicht, dann machen Sie die Subviews-Hintergründe transparent, und wenn Sie sie hervorheben möchten, markieren Sie einfach die übergeordnete Ansicht.
0
Erstellen Sie ein Array mit allen Ansichten, die hervorgehoben werden sollen. Dann durchlaufen Sie das Array, um sie bei Bedarf zu markieren.
0
eine benutzerdefinierte Klasse von UIView erstellen und den Code folgen:
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
self.backgroundColor=[UIColor YourColor];
}
-(void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
self.backgroundColor=[UIColor PreviousColor];
}
Leider hat jeder Subview anderes Verhalten. Aber danke. – Lumialxk
heh, dann denke ich, du wirst stecken bleiben mit dem Durchschleifen ... – Fonix
sonst könnte etwas mit [Schlüssel-Wert-Beobachtung] (http://shipster.com/key-value-observing/) versuchen, aber ich denke das wäre mehr Arbeit als nur Schleifen, und möglicherweise nur marginal eleganter – Fonix