Ваш радиус дуги неправильный.Фактическая дуга рисуется далеко за пределами вашего контекста.Измените
CGContextAddArc(ctx,
rect.size.width/2., // centerX
rect.size.height/2., // centerY
rect.size.width, // radius
0, // start Angle
M_PI/2., // end Angle
1); // clockwise
на
CGContextAddArc(ctx,
rect.size.width/2., // centerX
rect.size.height/2., // centerY
rect.size.width/2., // radius
0, // start Angle
M_PI/2., // end Angle
1); // clockwise
Также обратите внимание, что в зависимости от типа кнопки вы можете получить изображение, обработанное как шаблон , а не какфактическое изображение, которое вы нарисовали.Чтобы это исправить, вы бы сказали (перед использованием изображения в кнопке):
progressImg =
[progressImg imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];