Google+ Badge

Wednesday, June 22, 2011

More Interface Builder fun

I installed my app on an iPhone for QA. In the appointment list view I had moved the toolbar to the bottom of the screen to put it in the proper iOS location and to avoid the mis-taps that happen all the time on the phone causing the "back" button in the navigation area to be accidentally pressed. The Tap zones on my rev 4 iTouch seem to suck and there are know issues with clicking anywhere near a button on a navigation bar triggering a hit.

The QA person had a large list of appointments. When you drag scroll you can get the bottom one to appear as you can overscroll, handy feature on most mobile devices. Of course when it settles back down the last appointment was under the toolbar. Here IB bit me in the ass yet again. Clearly the toolbar is there in IB and clearly the scrolling table is above it but once the code runs all bets are off. Apple seems to feel if you have a scrolling view on the screen then it should own the whole screen all other widgets be damned. I had to fix this issue with the table painting under the navigation bar by adjusting the table view content inset at load time and during interface rotation changes. So I adjust it now for the toolbar too.

After talking to QA this is not a rare issue. He has a number of iPhone apps that don't take this into account so sometimes he has to overscroll then tap really quickly on the last item in the list. That is crappy UI. It is a crappy UI that occurs much to often because the crappy tool you use to build you crappy app makes it look like it will be fine when it is actually screwed at run time.

Every time I see a comment or article on how wonderful all iOS apps are and how awesome the tools are that let you create them I just want to scream! This stuff needs a ton of improvement.