A RubyMotion library for iOS 7+ to own NSMutableAttributedString.
MASTR = Mutable Attributed STRing
Add this to your Gemfile:
gem 'motion-mastr'
Then run this to install it:
bundle
- iOS 7 or higher
include MotionMastr
This is a MastrBuilder.
mastr # => MastrBuilder
You'll use this to build your NSMutableAttributeString
s.
mastr.build # => NSMutableAttributeString
Feed it a string.
mastr("hello").build
Feed it styles too.
mastr("Grimace", foreground_color: UIColor.purpleColor).build
Keep adding pieces until you get what you want.
mastr.add("hi").add("there").add("!").build
Styles inside mastr() are default styles.
blue = UIColor.blueColor
mastr("blue", foreground_color: blue).add(" blue ").add(" blue ").build
Override defaults while adding pieces.
red = UIColor.redColor
green = UIColor.greenColor
mastr("red light", foreground_color:red)
.add("green light", foreground_color:green)
.add("red light")
.add("red light")
.build
alignment # :left, :right, :center
attachment # NSTextAttachment
background_color # UIColor
base_writing_direction # :natural, :left_to_right, :right_to_left
baseline_offset # :default or Float
default_tab_interval # :default or 0.0 and up
expansion # :default or Float
first_line_head_indent # 0.0 and up
font # UIFont
foreground_color # UIColor
color # ^
head_indent # 0.0 and up
hyphenation_factor # 0.0 up to 1.0
kern # :default, Float
kerning # ^
ligature # :off, :on
line_break_mode # :word, :char, :clip, :head, :tail, :middle
line_height_multiple # :default, 0.0 and up
line_spacing # 0.0 and up
link # NSURL or NSString
maximum_line_height # :off, 0.0 and up
minimum_line_height # :off, 0.0 and up
obliqueness # :default, Float
paragraph_spacing # :default, 0.0 and up
paragraph_spacing_before # :default, 0.0 and up
shadow_blur_radius # 0.0 and up
shadow_color # UIColor
shadow_offset # CGSize, [Float, Float], Float
strikethrough_color # UIColor
strikethrough_style # :style_none, :style_single, :style_thick, :style_double or an array including those + [:pattern_solid :pattern_dot :pattern_dash :pattern_dash_dot :pattern_dash_dot_dot :by_word]
stroke_color # UIColor
stroke_width # :default, Float
tail_indent # 0.0 and up
text_effect # :letterpress
underline_color # UIColor
underline_style # :style_none, :style_single, :style_thick, :style_double or an array including those + [:pattern_solid :pattern_dot :pattern_dash :pattern_dash_dot :pattern_dash_dot_dot :by_word]
For details, check out the NSAttributedString docs. Or just play around.
- Setting text_effect makes the CPU work hard, not sure why yet.
- Shadow properties aren't working when assigning to a UILabel, not sure why yet.
- Go easy on obliqueness, don't get hurt.
- [new] mastr now optional supports being called with just a Hash of styles
- [new] the style :color is now alias for :foreground_color
- [feature] first release