I'm nitpicking, but since the return type is a CGFloat can we return floats vs casting ints?

I guess the 1 px height for the iPhone is because we only want to show the section headers on the iPad? Why not return nil for the view instead?