Wie kann ich 3 UIButtons auf die Mitte einer UITableCellView ausrichten?

8

Wie kann ich 3 UIButton s auf die Mitte eines UITableCellView ausrichten?

Beispiel: Ich habe 3 UIButton s mit Titeln:

  1. E-Mail
  2. Telefon
  3. Skype

Es ist möglich, dass eines oder mehrere der UIButton s ausgeblendet sind. Wenn beispielsweise das Telefon UIButton ausgeblendet ist, sollten nur E-Mail und Skype in der Mitte ausgerichtet sein. Wenn Telefon und Skype ausgeblendet sind, sollte nur die E-Mail in der Mitte ausgerichtet sein.

Wenn eines der UIButton s ausgeblendet ist, sollten die sichtbaren in der Mitte ausgerichtet sein.

Ich möchte sie sowohl horizontal als auch vertikal zentrieren.

    
Vikram Pote 08.10.2015, 13:01
quelle

2 Antworten

20

Getestet für xcode 7:

Ich nehme an, dass Sie nach so etwas suchen

Lösung:

Schritte: 1) Was benötigt wird, ist eine einkapselnde Ansicht, die alle drei Schaltflächen (Skype, Telefon, E-Mail) in der Mitte hält, unabhängig davon, ob sich darin ein Knopf, zwei oder drei befinden. Dazu wird eine Halteransicht erstellt, die im unteren Schnappschuss grün hinterlegt ist.

Einschränkungen für diese Ansicht sind

es ist nur, um alle Unteransichten zu halten, wird es seine Größe von seinem Inhalt bekommen, so dass es keine Höhe / Breite Beschränkungen geben muss.

2) Jetzt sind die Einschränkungen für die Schaltfläche in der Mitte

3) Einschränkungen für Buttons auf beiden Seiten sind

Wenn Sie eine Schaltfläche ausblenden müssen, müssen Sie die Breiteneinschränkung auf 0 setzen, und alle anderen Schaltflächen werden entsprechend neu angeordnet.

Für TableView-Zelle:

%Vor%

Verwenden Sie:

%Vor%

Dasselbe kann mit UIStackView erreicht werden (ohne all diese Kopfschmerzen offensichtlich), aber das wird nicht auf iOS vor 9.0 laufen

Aktualisiert (26. Oktober 2015):

GitHub Repo für das Testprojekt

    
Usama 09.10.2015, 07:35
quelle
0

Sie sollten in UIStackView schauen (es ist jedoch für iOS 9 aufwärts).

Ich glaube, es gibt eine Methode für UIStackViews, in der eingebettete UIViews "verschwinden" und die anderen UIViews, die in dasselbe UIStackView eingebettet sind, neu ausrichten.

    
Fine Man 09.10.2015 05:55
quelle