AFAIK there is no way to change the global default font for your app. So this means that have UILabel, and UITextField, and UITextView instance that you create needs to have it's font configured.
Configure each might take a while but what will take longer is if they decide to change their mind! While i'm relatively young, i've had this happened enough times that i know you should always plan for it.
so ....
This category provides you with some simply methods modelled on the existing UIFont class methods. Now if you couple this category with categories on the other text rendering classes, you have a nice short hand way to quickly render text in the font you want.
So as an example you could create a category on UILabel, and create a class method called labelWithAppSettings. This method would do the following
So as an example you could create a category on UILabel, and create a class method called labelWithAppSettings. This method would do the following
- Allocate and instantiate a UILabel
- Set it's font using one of the methods from UIFont+Additions
- Return a Autoreleased object
This would allow us to create (Outside of IB) UILabel's across our application with the default settings by calling [UILabel labelWithAppSettings].
Now if you want to use IB (and you should, cause it's awesome, seriously), you either swizzle or use a category to override the awakeFromNib on the text rendering classes and set font there.
While the above is very cool, i generally dislike using swizzling, or overriding methods via categories in production code. This generally causes your fellow programmers to swear at you while your not there.
Happy Coding
No comments:
Post a Comment