Is Quartz 2D a good choice to create custom views? Is there any other choices?
Thanks
Yes!
This is the standard way to go.
(See also ios View Programming Guide, chapter Custom View)
I have done all my custom Views using Quartz2D/Core Graphics in UIView::drawRect() (A compass rose, rulers, a custom user location for MkapView) and so on.
Totally depends on what you want to do. It is perfectly fine to do 2d drawing, but you could use images just as well. I prefer using CALayer for simple effects myself.
I posted an answer on creating custom controls and the several options to draw a control to a different question, but it applies here as well.