Tôi có UILabel
chứa hai chuỗi được phân tách được phân tách bằng một dòng mới. Chuỗi FIrst có kích thước phông chữ được đặt là 17 và kích thước thứ hai là 14. Tôi muốn đổi kích thước phông chữ tối thiểu NSMutableAttributedString
thành kích thước phông chữ tối thiểu nếu nội dung của nó không vừa với một dòng.iOS - Tự động thu nhỏ UILabel với văn bản được phân bổ
Điều đó có khả thi không? Nó là khá đơn giản để cấu hình hành vi như vậy UILabel
bằng cách thiết lập "tự động thu nhỏ kích thước phông chữ tối thiểu" trong IB cho văn bản đơn giản, nhưng không biết làm thế nào để làm điều đó cho văn bản được phân bổ.
Đây là mã của tôi:
NSString *eventName = @"Looong Event Name";
NSString *placeString = @"My place";
eventName = [eventName stringByAppendingString:@"\n"];
NSMutableAttributedString *attrName = [[NSMutableAttributedString alloc] initWithString:eventName];
[attrName addAttribute:NSFontAttributeName value:[UIFont boldSystemFontOfSize:17] range:NSMakeRange(0, [eventName length])];
NSMutableAttributedString *attrPlace = [[NSMutableAttributedString alloc] initWithString:placeString];
[attrPlace addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:14] range:NSMakeRange(0, placeString.length)];
[attrPlace addAttribute:NSForegroundColorAttributeName value:[UIColor grayColor] range:NSMakeRange(0, placeString.length)];
NSMutableAttributedString *finalString = [[NSMutableAttributedString alloc] initWithAttributedString:attrName];
[finalString appendAttributedString:attrPlace];
UILabel *nameLabel = (UILabel *)[cell viewWithTag:100];
nameLabel.attributedText = finalString;
Điều này đã trở thành cơn đau đầu khi tôi cố gắng làm điều đó. Tôi sẽ không đăng câu trả lời này vì có thể có giải pháp tốt hơn mà tôi không thể tìm thấy. Nhưng, tôi đã kết thúc cấu hình tất cả các thuộc tính chuỗi của tôi theo lập trình (ngoại trừ những thuộc tính phải làm với kích thước) và tạo nhãn là IBOutlet và được định cấu hình "Kích thước phông chữ tối thiểu" trong trình đơn thả xuống "Autoshrink" trong trình kiểm tra thuộc tính. –