Чтобы отобразить изображение подходящим образом, вы просто устанавливаете свойство imageView.image
для своего изображения и настраиваете imageView.contentMode
по своему вкусу. Из того, что вы написали, я думаю UIViewContentModeScaleAspectFill
- это то, что вы ищете, но поэкспериментируйте с этим, чтобы увидеть, что подходит вам лучше всего.
Если вы хотите сохранить образ на устройстве и абсолютно уверены, что вам никогда не понадобится увеличенная версия образа, то его уменьшение, конечно, сэкономит место на диске и будет разумным решением делать.
Вы, вероятно, сделаете это через CoreGraphics. Вы устанавливаете растровый контекст с желаемыми размерами и указываете изображению нарисоваться там, а затем возвращаете полученное изображение обратно.
Это было бы, однако, довольно дорогой вещью с точки зрения производительности, и вы должны делать это только один раз для каждого изображения, которое вам нужно сжать. Также вы не хотите делать это в своем основном потоке, но GCD делает это очень просто.