RubyMotion iOS 5 Appearance API
iOS 5 introduced the appearance API so that developers could customize the appearance of certain UI elements throughout the entire application without subclassing those controls.
For example, to change the appearance of a UINavigationBar you can set the appearance in the app delegate with the following code:
navigationBar = UINavigationBar.appearance navigationBar.setBackgroundImage(UIImage.imageNamed('navigation-bar-background.png'), forBarMetrics: UIBarMetricsDefault) navigationBar.setTitleTextAttributes({ UITextAttributeFont => UIFont.fontWithName('Trebuchet MS', size:24), UITextAttributeTextShadowColor => UIColor.clearColor, UITextAttributeTextColor => '#2a3284'.to_color })
I had to use the hashrocket => instead of the new colon notation since using the colon notation resulted in the key constants being turned into symbols.
The .to_color helper is part of the BubbleWrap library. I’ll talk about that library in a separate post.