I ran into the same issue in an application I'm working on, and never found a good solution. I could get parts of the cell to paint the background color, but not all of it. I then took a different approach, so I didn't pursue it.
One possibility I didn't try, but might work for you - you could conceivably create a custom view that covers the entire table cell, install it into the cell, and have it opaque with your desired color, then, handle the positioning of images/text/whatever yourself as subviews of your custom view. That would be a little simpler than subclassing UITableViewCell, I suspect.
At worst, you might have to subclass UITableViewCell in order to be able to override layoutSubviews so that you can make sure your view exactly matches the size of the UITableViewCell...
|