To rozwiązanie jest ważna dla iOS:
w iOS można użyć UILabel i prawo je wyrównać. Oczywiście będziesz mieć idealne wyrównanie tylko wtedy, gdy użyjesz "stałej czcionki", na przykład Courier New. Jeśli musisz użyć czcionki proporcjonalnej, jedynym sposobem jest użycie rozszerzenia NIKtring + UIKit do narysowania wszystkich znaków ciągu w ustalonych pozycjach wewnątrz kontekstu widoku widoku: Idealnie przepływ: 1. obliczyć długość najdłuższy ciąg 2. Lewym-pad wszystkie pozostałe ciągi dodając dodatkową przestrzeń 3. następnie dla każdego ciągu iterować na każdej postaci i narysuj go jako określonej pozycji (nie kopiować i wklejać tego kodu, wystarczy użyć go, aby mieć pomysł, to jest obj-C jak pseudo-kod)
CGFloat x=0; // the string start let's say at x=0
CGFloat dx=40; // distance between characters
for(NSInteger i=0;i<[myString length];i++) {
NSString *char = [myString substringWithRange:NSRangeMake(i,1)];
[char drawAtPoint:CGPointMake(x,y) withFont:myFont];
x+=dx;
}
oczywiście dx musi być wybrany w zależności od rozmiaru czcionki.
nie próbowałem ciągi wypełniające przy użyciu klasy NSString, ale teoretycznie powinny być w stanie zrobić coś takiego ... NSString * inne = [NSString stringWithFormat: @ "% 8S", [str UTF8String]], gdzie * str * jest twoim nieprzetworzonym łańcuchem dat w formacie HH: MM: SS. – Perception
Zgodnie z przykładem może wystarczyć wyrównanie do prawej strony ciągu znaków. Można to ustawić za pomocą stylu akapitu. – Gobra
@Perception: Jeśli napiszesz to jako odpowiedź (z S zamienionym na s), przekażę to. Jest to poprawne rozwiązanie dla stałej szerokości znaków. –