Skip to main content
Commonmark migration
Source Link

Say I have an NSMutableAttributedString .

The string has a varied mix of formatting throughout:

Here is an example:

This string is hell to change in iOS, it really sucks.

However, the font per se is not the font you want.

I want to:

for each and every character, change that character to a specific font (say, Avenir)

#BUT,

BUT,

for each and every character, keep the mix of other attributions (bold, italic, colors, etc etc) which was previously in place on that character.

How the hell do you do this?


Note:

if you trivially add an attribute "Avenir" over the whole range: it simply deletes all the other attribute ranges, you lose all formatting. Unfortunately, attributes are not, in fact "additive".

Say I have an NSMutableAttributedString .

The string has a varied mix of formatting throughout:

Here is an example:

This string is hell to change in iOS, it really sucks.

However, the font per se is not the font you want.

I want to:

for each and every character, change that character to a specific font (say, Avenir)

#BUT,

for each and every character, keep the mix of other attributions (bold, italic, colors, etc etc) which was previously in place on that character.

How the hell do you do this?


Note:

if you trivially add an attribute "Avenir" over the whole range: it simply deletes all the other attribute ranges, you lose all formatting. Unfortunately, attributes are not, in fact "additive".

Say I have an NSMutableAttributedString .

The string has a varied mix of formatting throughout:

Here is an example:

This string is hell to change in iOS, it really sucks.

However, the font per se is not the font you want.

I want to:

for each and every character, change that character to a specific font (say, Avenir)

BUT,

for each and every character, keep the mix of other attributions (bold, italic, colors, etc etc) which was previously in place on that character.

How the hell do you do this?


Note:

if you trivially add an attribute "Avenir" over the whole range: it simply deletes all the other attribute ranges, you lose all formatting. Unfortunately, attributes are not, in fact "additive".

added 3 characters in body
Source Link
Fattie
  • 9.8k
  • 76
  • 455
  • 769

Say I have an NSMutableAttributedString .

The string has a varied mixmix of formatting throughout:

Here is an example:

This string is hell to change in iOS, it really sucks.

However, the font per se is not the font you want.

I want to:

for each and every character, change that character to a specific font (say, Avenir)

#BUT,

for each and every character, keep each of the mix of other attributions (bold, italic, colors, etc etc) which was previously in place on that character.

How the hell do you do this?


Note:

if you trivially add an attribute "Avenir" over the whole range: it simply deletes all the other attribute ranges, you lose all formatting. Unfortunately, attributes are not, in fact "additive".

Say I have an NSMutableAttributedString .

The string has a varied mix of formatting throughout:

Here is an example:

This string is hell to change in iOS, it really sucks.

However, the font per se is not the font you want.

I want to:

for each and every character, change that character to a specific font (say, Avenir)

#BUT,

for each and every character, keep each of the other attributions (bold, italic, colors, etc etc) which was previously in place on that character.

How the hell do you do this?


Note:

if you trivially add an attribute "Avenir" over the whole range: it simply deletes all the other attribute ranges, you lose all formatting. Unfortunately, attributes are not, in fact "additive".

Say I have an NSMutableAttributedString .

The string has a varied mix of formatting throughout:

Here is an example:

This string is hell to change in iOS, it really sucks.

However, the font per se is not the font you want.

I want to:

for each and every character, change that character to a specific font (say, Avenir)

#BUT,

for each and every character, keep the mix of other attributions (bold, italic, colors, etc etc) which was previously in place on that character.

How the hell do you do this?


Note:

if you trivially add an attribute "Avenir" over the whole range: it simply deletes all the other attribute ranges, you lose all formatting. Unfortunately, attributes are not, in fact "additive".

added 11 characters in body
Source Link
Fattie
  • 9.8k
  • 76
  • 455
  • 769

Say I have an NSMutableAttributedString .

The string has a varied mix of formatting throughout:

Here is an example:

This string is hell to change in iOS, it really sucks.

However, the font per se is not the font you want.

I want to:

for each and every character, change that character to a specific font (say, Avenir)

but#BUT,

for each and every character, keep each of the other attributions (bold, italic, colors, etc etc) which was previously in place on that character.

How the hell do you do this?


Note:

if you trivially add an attribute "Avenir" over the whole range: it simply deletes all the other attribute ranges, you lose all formatting. Unfortunately, attributes are not, in fact "additive".

Say I have an NSMutableAttributedString .

The string has a varied mix of formatting throughout:

Here is an example:

This string is hell to change in iOS, it really sucks.

However, the font per se is not the font you want.

I want to:

for each and every character, change that character to a specific font (say, Avenir)

but,

for each character, keep each of the other attributions (bold, italic, colors, etc etc) which was previously in place on that character.

How the hell do you do this?


Note:

if you trivially add an attribute "Avenir" over the whole range: it simply deletes all the other attribute ranges, you lose all formatting. Unfortunately, attributes are not, in fact "additive".

Say I have an NSMutableAttributedString .

The string has a varied mix of formatting throughout:

Here is an example:

This string is hell to change in iOS, it really sucks.

However, the font per se is not the font you want.

I want to:

for each and every character, change that character to a specific font (say, Avenir)

#BUT,

for each and every character, keep each of the other attributions (bold, italic, colors, etc etc) which was previously in place on that character.

How the hell do you do this?


Note:

if you trivially add an attribute "Avenir" over the whole range: it simply deletes all the other attribute ranges, you lose all formatting. Unfortunately, attributes are not, in fact "additive".

added 35 characters in body
Source Link
Fattie
  • 9.8k
  • 76
  • 455
  • 769
Loading
edited body
Source Link
Fattie
  • 9.8k
  • 76
  • 455
  • 769
Loading
added 37 characters in body
Source Link
Fattie
  • 9.8k
  • 76
  • 455
  • 769
Loading
added 62 characters in body
Source Link
Fattie
  • 9.8k
  • 76
  • 455
  • 769
Loading
added 62 characters in body
Source Link
Fattie
  • 9.8k
  • 76
  • 455
  • 769
Loading
Notice removed Draw attention by Fattie
Bounty Ended with manmal's answer chosen by Fattie
Notice added Draw attention by Fattie
Bounty Started worth 400 reputation by Fattie
added 188 characters in body
Source Link
Fattie
  • 9.8k
  • 76
  • 455
  • 769
Loading
deleted 987 characters in body
Source Link
Fattie
  • 9.8k
  • 76
  • 455
  • 769
Loading
added 1044 characters in body
Source Link
Fattie
  • 9.8k
  • 76
  • 455
  • 769
Loading
added 1044 characters in body
Source Link
Fattie
  • 9.8k
  • 76
  • 455
  • 769
Loading
Source Link
Fattie
  • 9.8k
  • 76
  • 455
  • 769
Loading