Here’s an interesting library that utilizes UIBezierPath and CAShapeLayer making it easier to draw custom animated shapes called Shapes from Denys Telezhk that is great for making custom animated UI components.
Included within the library is a UIView subclass that uses CAShapeLayer and provides a simple API for changing the path, fill and stroke colors for creating geometric shapes. There are also included features specifically for creating progress views, creating dimming views, and creating shaped buttons.
These animated images from the readme of the included example nicely display these features:
You can find Shapes on Github.
You can read more about shapes on the MLSDev blog.
There is also a nice guide on creating custom animated buttons with shapes in the Shapes Wiki.