In the very customized applications like Debty where every pixel has to be customized the problems start with standard controls. Usually we don’t have access to necessary properties to change color or size and that’s right. Watch the video “Session 116 – Model-View-Controller for iPhone OS” from WWDC2010 where you could find The 10 best MVC Tips Ever – “#3 Don’t fight with framework”.
Anyway a lot of unruly developers want to go beyond the limits set by Apple. I am convinced that the game is worth candles, but before jumping into the open ocean please learn how to keep well on the water in swimmingpool – learn the most recent Apple Mobile HIG. I believe everybody focused pragmatically on WHY it’s so instead WHAT it looks like will do great applications sooner or later.
While Debty current update (v1.3) where we want to let users to select different currency we faced with boring standard Pickers. We have a UIDatePicker to set reminders and a common UIPickerView to show currency list. That’s how it looks without customization:
![]() |
![]() |
I know it looks OK, but how we can improve it? Not spending too much time it has to look more stylish according to the app’s common style. The trick is that we can draw a frame with any texture and put it up the Pickers. The central part of the frame is transparent so the frame covers only the area around the Picker’s animating area letting user to interact with a picker below. This way a picker can look as a designer wishes.
We debated within the team which option to choose. I like option #3-4 and #2, but don’t #1 because it is one more different texture on the screen. It’d be looked like a salad. But Kostia likes how option #1 looks. So, opinions diverged. Note it’s necessary to evaluate the workpiece on a real device. It is closest to the actual UI option – need to feel in the hand and try to tap then the brain will understand how it corresponds to what was intended. It’s a magic process.
A bit later it’s discovered that we can not change the transparent strip for choice of a UIDatePicker. So we want to have similar strips for both pickers. Option #3-4 has become less attractive. The option #2 was selected as the most fit into the current design.
By drawing the options and fitting sizes plus 3 lines of code we have a great customized control.
Update (31 Apr 2011): It’s just discovered that UIDatePicker changes width of animating area according to the user’s device region settings. Month titles in English and Russian cover different areas, so we can not customize so simply.
Update (06 May 2011): We decided not to include this customization to production since we can’t customize every such appearing panel. Don’t fight with framework.
PS. The header image symbolizes a long and difficult path to advanced knowledge.










