Nasıl NSAttributedString kullanıyor musunuz?
NSString
NSMutableStrings
birden çok renk mümkün değildir. İle tanıtıldı NSAttributedString
hakkında biraz duydumiPad SDK 3.2(veya 3.2) ve kullanılabilir olarak iPhoneiPhone SDK 4.0 beta.
Üç rengi olan bir dize istiyorum.
Neden ben kullanmıyorum 3 ayrı NSStrings, çünkü uzunluğu her üç NSAttributedString
dizeleri olacak sık sık değişen ve bu yüzden tercih ederim kullanmamaya herhangi bir hesaplama için yeniden pozisyon 3 ayrı NSString
nesneler.
Eğer mümkünse NSAttributedString
kullanarak nasıl aşağıdaki - (NSAttributed dize ile mümkün bunu nasıl yapardın) yapabilirim:
Düzenleme:
, @"first"
, @"second"
@"third"
unutmayın, herhangi bir zamanda, diğer dizeleri ile değiştirilecektir. Yani kodlanmış NSRange değerleri kullanarak çalışmaz.
CEVAP
Bina dizeleri atfedilen zaman, değişken alt sınıf, sadece bir şeyleri temiz tutmak için kullanmayı tercih ederim.
Bu varlık, Üç Renkli bir oluşturmak nasıl dize atfedilen " dedi
NSMutableAttributedString * string = [[NSMutableAttributedString alloc] initWithString:@"firstsecondthird"];
[string addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0,5)];
[string addAttribute:NSForegroundColorAttributeName value:[UIColor greenColor] range:NSMakeRange(5,6)];
[string addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(11,5)];
Belli ki zor kod bu şekilde aralıkları gitmiyorsun. Gibi bir şey yapabilirsin onun yerine belki de:
NSDictionary * wordToColorMapping = ....; //an NSDictionary of NSString => UIColor pairs
NSMutableAttributedString * string = [[NSMutableAttributedString alloc] initWithString:@""];
for (NSString * word in wordToColorMapping) {
UIColor * color = [wordToColorMapping objectForKey:word];
NSDictionary * attributes = [NSDictionary dictionaryWithObject:color forKey:NSForegroundColorAttributeName];
NSAttributedString * subString = [[NSAttributedString alloc] initWithString:word attributes:attributes];
[string appendAttributedString:subString];
[subString release];
}
//display string
Nasıl PHP bir karma parolalar için bcr...
Nasıl düzgün C ad kullanıyor musunuz ?...
Nasıl "git --bare init" depo...
Nasıl Erişim geliştirme ile sürüm kont...
Nasıl Python üç nokta Dilimleme sözdiz...