giải pháp này có giá trị dành cho iOS:
trong iOS, bạn có thể sử dụng UILabel và phải sắp xếp chúng. Tất nhiên bạn sẽ có một sự liên kết hoàn hảo chỉ khi bạn sử dụng một "font chữ cố định", ví dụ như Courier New chẳng hạn. Nếu bạn phải sử dụng phông tỷ lệ, cách duy nhất là sử dụng phần mở rộng NSString + UIKit để vẽ tất cả các ký tự của chuỗi tại vị trí cố định bên trong ngữ cảnh vẽ: Vì vậy, lý tưởng là luồng: 1. tính toán độ dài chuỗi dài nhất 2. trái pad tất cả các chuỗi khác bằng cách thêm không gian 3. sau đó cho mỗi chuỗi lặp trên mỗi ký tự và vẽ nó như là một vị trí cụ thể (không sao chép và dán mã này, chỉ cần sử dụng nó để có một ý tưởng; đây là obj-c-giống như mã giả)
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;
}
Tất nhiên dx phải được chọn theo kích thước phông chữ.
tôi đã không cố gắng xâu đệm bằng cách sử dụng lớp NSString, nhưng về mặt lý thuyết bạn sẽ có thể làm điều gì đó giống như ... NSString * khác = [NSString stringWithFormat: @ "% 8S", [str UTF8String]], trong đó * str * là chuỗi ngày tháng thô của bạn ở định dạng HH: MM: SS. – Perception
Theo ví dụ, có thể đủ để vẽ chuỗi căn phải. Điều này có thể được thiết lập với kiểu đoạn văn. – Gobra
@Perception: Nếu bạn đăng câu trả lời đó (với S thay đổi thành s), tôi sẽ upvote nó. Đó là giải pháp đúng cho chiều rộng ký tự cố định. –