Вы должны сделать математику самостоятельно. Например:
// desired maximum width/height of your image
UIImage *image = self.imageToDraw;
CGRect imageRect = CGRectMake(10, 10, 42, 42); // desired x/y coords, with maximum width/height
// calculate resize ratio, and apply to rect
CGFloat ratio = MIN(imageRect.size.width / image.size.width, imageRect.size.height / image.size.height);
imageRect.size.width = imageRect.size.width * ratio;
imageRect.size.height = imageRect.size.height * ratio;
// draw the image
CGContextDrawImage(context, imageRect, image.CGImage);
Кроме того, вы можете встроить UIImageView
в качестве подпредставления вашего представления, что дает вам простые в использовании опции для этого. Для аналогичной простоты использования, но лучшей производительности вы можете встроить слой, содержащий изображение, в слой вашего представления. Любой из этих подходов заслуживает отдельного вопроса, если вы решите пойти по этому пути.