Вы можете создать CGMutablePath в нужной вам форме, а затем использовать его для обрезки в области, которую вы хотите отобразить, что-то вроде ...
// Construct yourClipPath
CGContextAddPath(yourContext, yourClipPath);
CGContextClosePath(yourContext);
CGContextClip(yourContext);
// Draw Your Gradient