Мне нужно проверить NSMutableString со значениями, которые я вставил, когда он первоначально был NSString.Измените атрибуты нескольких частей NSMutableAttributedString
Примером этого является:
NString* textToDraw = @"";
textToDraw = [textToDraw stringByAppendingString:[[NSString alloc] initWithFormat:@"
Summary of currently worked on process\n\nTitle name:\nResults for Process\n %@\n%@\n%@\n, resultOne, resultTwo, resultThree]];
resultOne
, resultTwo
, resultThree
просто обычные NSString значения
Я тогда инициализацию NSMutableAttributedString для некоторых добавили форматирование.
NSMutableAttributedString *summaryBody = [[NSMutableAttributedString alloc] initWithString:textToDraw];
CTFontRef centuryGothicStandard;
CTFontRef centuryGothicTitle;
centuryGothicStandard = CTFontCreateWithName(CFSTR("Century Gothic"), 12.0, nil);
centuryGothicTitle = CTFontCreateWithName(CFSTR("Century Gothic-Bold"), 24.0, nil);
//Modify the summary, so that the title is larger, and bolded, the subtitles are bolded, and the text is century gothic font
[summaryBody addAttribute:(id)kCTFontAttributeName
value:(__bridge id)centuryGothicStandard
range:NSMakeRange(0, [summaryBody length])];
Что мне нужно сделать, это изменить resultOne
, resultTwo
и resultThree
быть красными, я попытался ответившим решением в Change attributes of substrings in a NSAttributedString, но я не понимаю концепции.
Могу ли я просто пропустить NSMutableAttributedString и найти конкретный символ, который я вставляю, скажем '|' для начальной точки и «?» для конечной точки? Я искал получение определенного индекса, но ничего не связанного с NSAttributedMutatableString всплывает только NSRange, о котором я не буду знать конкретно.
Вот некоторые псевдо-код, чтобы помочь объяснить, что я думаю, что может быть возможным решением:
textToDraw = [textToDraw stringByAppendingString:[[NSString alloc] initWithFormat:@" Summary of currently worked on process\n\nTitle name:\nResults for Process\n |%@?\n|%@?\n|%@?\n, resultOne, resultTwo, resultThree]];
(for int i = 0; i < [NSAttributedMutatableString length]; i++)
{
if(char at i == '|')
{
get an NSRange from this value to the char at i == '?'
[NSAttributedMutatableStringS addAttribute:(id)kCTForegroundColorAttributeName
value:(id)[UIColor redColor].CGColor
range:NSMakeRange(0, NSRangeAbove])];
}
}
В настоящее время я могу получить значения resultOne
и такие, и создать NSAttributedStrings с дополнительным атрибутом изменения цвета, единственная проблема, конечно, не зная значения индекса, так что это еще одна возможность.
Спасибо, что, отвечая на мой вопрос, я должен проверить это, когда у меня появится такая возможность. –
Я протестировал ваш ответ и могу с радостью сказать, что он работает: D, я очень ценю помощь! –
Добро пожаловать! –