Это решение действительно для iOS:
в iOS вы можете использовать UILabel и выровнять их по правому краю. Конечно, у вас будет идеальное выравнивание, только если вы используете «фиксированный шрифт», как например Courier New.
Если вы должны использовать пропорциональный шрифт, единственный способ - использовать расширение NSString + UIKit для рисования всех символов строки в фиксированных позициях внутри контекста рисования вида:
Так что в идеале поток:
1. рассчитать длину самой длинной строки
2. добавьте слева все остальные строки, добавив дополнительное место
3. затем для каждой строки выполните итерацию по каждому символу и нарисуйте ее как определенную позицию (не копируйте и не вставляйте этот код, просто используйте его, чтобы иметь представление; это псевдокод, подобный obj-c-like)
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;
}
Конечно, dx должен быть выбран в соответствии с размером шрифта.