Если у вас есть максимальный размер, тогда просто сравните его с максимальным размером и задайте новый размер.
Перед установкой нового кадра проверьте, превышает ли это значение максимальное значение илименьше минимального значения.Если это так, не меняйте рамку.
let newWidth = pinchScale*self.imageView.frame.width
let newHeight = pinchScale*self.imageView.frame.height
// You need to have the maximum and minimum values for comparison already stored
if (newWidth >= minimumWidth && newWidth <= maximumHeight) && (newHeight >= minimumHeight && newHeight <= maximumHeight) {
imageView.frame.size = CGSize(width: newWidth, height: newHeight)
}
Примечание: Возможно, вы захотите применить ту же логику к другим вещам, которые меняются во время сжатия, например к центру.