NSAttributedString
jest dla mnie naprawdę nieprzenikniona.
Chcę ustawić UILabel
tekst o różnych rozmiarach i rozumiem, że NSAttributedString
jest to droga, ale nie mogę nigdzie dojść z dokumentacją na ten temat.
Bardzo bym chciał, żeby ktoś pomógł mi na konkretnym przykładzie.
Na przykład, powiedzmy, że tekst, który chciałem, brzmiał:
(in small letters:) "Presenting The Great..."
(in huge letters:) "HULK HOGAN!"
Czy ktoś może mi pokazać, jak to zrobić? A może nawet odniesienie, które jest jasne i proste, o którym mógłbym się nauczyć? Przysięgam, próbowałem to zrozumieć poprzez dokumentację, a nawet przez inne przykłady w Stack Overflow, ale po prostu nie rozumiem.
źródło
Rozwiązanie Swift 3
Możesz również użyć
append
funkcji zamiast określać indeksy w ObjC lub Swift:let attrString = NSMutableAttributedString(string: "Presenting The Great...", attributes: [ NSFontAttributeName: UIFont.systemFont(ofSize: 20) ]) attrString.append(NSMutableAttributedString(string: "HULK HOGAN!", attributes: [NSFontAttributeName: UIFont.systemFont(ofSize: 40) ]))
źródło
Rozwiązanie Swift 4:
let attrString = NSMutableAttributedString(string: "Presenting The Great...", attributes: [NSAttributedStringKey.font: UIFont.systemFont(ofSize: 18)]); attrString.append(NSMutableAttributedString(string: "HULK HOGAN!", attributes: [NSAttributedStringKey.font: UIFont.systemFont(ofSize: 36)]));
źródło
Jeśli chcesz to zrobić w prosty sposób, istnieje repozytorium git o nazwie OHAttributedLabel , którego używam, które udostępnia kategorię na NSAttributedString. Pozwala na:
NSMutableAttributedString *mystring = [[NSMutableAttributedString alloc] initWithString:@"My String"]; [mystring setTextColor:[UIColor colorWithRGB:78 green:111 blue:32 alpha:1]]; mystring.font = [UIFont systemFontOfSize:14];
Jeśli nie chcesz korzystać z biblioteki innej firmy, sprawdź ten link, aby uzyskać przyzwoity samouczek na temat rozpoczynania pracy z przypisanymi ciągami.
źródło