objective c - CTLineGetGlyphRuns strange behaviour with NSAttributedString -


i have string, let's "hello" need append in front , @ end "," string looks this: ",hello," want text white , "," in different color. this:

[attributedstring addattribute:(__bridge nsstring *)kctforegroundcolorattributename value:[uicolor whitecolor] range:nsmakerange(range.location+1, range.length-1)]; [attributedstring addattribute:(__bridge nsstring *)kctforegroundcolorattributename value:[uicolor yellowcolor] range:nsmakerange(range.location, 1)]; [attributedstring addattribute:(__bridge nsstring *)kctforegroundcolorattributename value:[uicolor yellowcolor] range:nsmakerange(range.length-1, 1)]; 

later stuff ctframesetterred, cgcontextref

ctlineref line = cfarraygetvalueatindex((cfarrayref)lines, index); cfarrayref glyphruns = ctlinegetglyphruns(line); cfindex glyphcount = cfarraygetcount(glyphruns); 

and in ",hello," example glyphcount returns 3 however! when change code to:

[attributedstring addattribute:(__bridge nsstring *)kctforegroundcolorattributename value:[uicolor whitecolor] range:nsmakerange(range.location+1, range.length-1)]; [attributedstring addattribute:(__bridge nsstring *)kctforegroundcolorattributename value:[uicolor whitecolor] range:nsmakerange(range.location, 1)]; [attributedstring addattribute:(__bridge nsstring *)kctforegroundcolorattributename value:[uicolor whitecolor] range:nsmakerange(range.length-1, 1)]; 

(now whole message ",hello," white, thats change) glyphcount returns 1 why , how avoid it? looks rather strange.


Comments

Popular posts from this blog

java - Jasper subreport showing only one entry from the JSON data source when embedded in the Title band -

serialization - Convert Any type in scala to Array[Byte] and back -

SonarQube Plugin for Jenkins does not find SonarQube Scanner executable -