2017-04-24 1 views
0

Ich habe einen langen, einzeiligen Text, der abgeschnitten wird (byTruncatingMiddle). Dieser String hat jedoch einen spezifischen Charakter in der Mitte, den ich nicht abschneiden möchte.Verhindern, dass ein bestimmter Teil des Textes abgeschnitten wird

Lassen Sie sagen, das der Text wie folgt aussieht:

FooFooFooFooFooFoo - BarBarBarBarBarBarBar 

Jetzt möchte ich den Text kürzen, ohne den Bindestrich zu entfernen. So sollte das Ergebnis aussieht diese

FooFoo...-...arBarBar 

Ist das möglich mit den Standardwerkzeugen von Swift oder ist meine einzige Methode, die UILabel in 3 Teile zu spalten und den Schwanz und den Kopf separat gestutzt?

Antwort

0

Es gibt keine Standard-Modus anzeigen kann. Ich hatte das gleiche Problem und habe es auch auf 3 UILabels aufgeteilt. Es ist viel einfacher als das Berechnen der Zeichen, eigentlich müssen Sie nichts berechnen, nur die Beschränkungen einstellen.

0

Eine Möglichkeit, dies tun könnte, ist eine maximale Zeichenanzahl für das Label haben und nehmen Sie den Text zu dieser Zählung nach oben und hängen mit dem „...“ + Rest Zeichenfolge Text wie:

label.text = lblMessage.text.substring(0, maxChars) + "..." + lblMessage.text.substring(minChars, text.lenght) 

grundsätzlich Logik ist:

  1. Finden Sie maximale Zeichen, die in Etikettenrahmen platziert werden können.
  2. Jetzt haben wir Nummernzeichen, die in ein Label gesetzt werden. Wir werden hier unsere eigene Trunkierungslogik behandeln.
  3. berechnen, wie viel Zeichen, die Sie in der ersten Hälfte und der zweiten Hälfte
  4. concate die beiden String mit „...“
Verwandte Themen