A number of posts are dealing with the subject: How to make an inline UIPickerView. As I am lazy, can anyone point me to a code snippet. To be honest, I find the Apple DateCell sample pedantic - there has to be an a more elegant method.
Is the dateCell app a good place to start? or are there other better links. I would appreciate any advice.
If you read this and do not understand my requirements / goal, please see the two posts referenced above or simply download the Apple Sample (dev. account required).
I use another - maybe simpler - solution to solve this.
Image that we have two cells
Most of the "magic" is within the table view delegate's
tableView:heightForRowAtIndexPath:
method:So you simply "hide" the date picker by returning a height of
0.0
.In the
tableView:didSelectRowAtIndexPath:
method you do the toggling:Calling the empty
beginUpdates
endUpdates
block forces the table to call thetableView:heightForRowAtIndexPath:
again (animated) and nicely fades in or out the date picker cell.When the date picker cell is the last one in a section you might also want to update the date label cell's
separatorInset
toUIEdgeInsetsZero
when the date picker is hidden and to the default value when it's shown.EDIT:
For completeness:
datePickerIsShown
is a simple boolean:The methods
isDateLabelRowAtIndexPath:
andisDatePickerRowAtIndexPath:
are just helper methods that compare a givenindexPath
to the known index path of the appropriate cell:EDIT 2:
There's one additional step missing: Make sure that you set the date picker cell's
clipsToBounds
property toYES
, otherwise you'll get some view glitches.