У вас есть (3) три варианта, которые могут это исправить.
Настройте UIViewContentMode
contentMode для UIImageView
, чтобы оно соответствующим образом отображало изображение (однако это будет работать только в том случае, если изображение, которое вы используете, масштабируется по размеру, не касаясь границы.
Используйте взамен UIButton
и просто настраивайте вставки изображений до тех пор, пока вы не будете удовлетворены (просто отключите кнопку или установите для взаимодействия с пользователем значение no здесь, чтобы "имитировать" вид изображения)
Создайте метод-обертку, который создает новое изображение до желаемого размера. Примерно так должно работать просто отлично
CGSize size = CGSizeMake(< some width > , < some height >);
Затем просто создайте новый снимок с выбранным вами размером
CGFloat scale = MAX(size.width/image.size.width, size.height/image.size.height);
CGFloat width = image.size.width * scale;
CGFloat height = image.size.height * scale;
CGRect imageRect = CGRectMake((size.width - width)/2.0f,
(size.height - height)/2.0f,
width,
height);
UIGraphicsBeginImageContextWithOptions(size, NO, 0);
[image drawInRect:imageRect];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
Отсюда вы сможете применить ширину и цвет границы, чтобы получить желаемый результат!
I догадываюсь четвертый (4-й) вариант может заключаться в ручном сжатии изображения (с помощью некоторого фоторедактора), чтобы оно отображалось (вписывалось) в вид изображения с соответствующим отступом вокруг изображения. Я думаю, что другие легче и лучше всего практиковать.