2016-07-15 8 views
0

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

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

Leider hat jeder Subview anderes Verhalten. Aber danke. – Lumialxk

+0

heh, dann denke ich, du wirst stecken bleiben mit dem Durchschleifen ... – Fonix

+0

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

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]; 
} 
Verwandte Themen