Ответ 1
Невозможно с UIImagePickerController, к сожалению. Решение, которое я рекомендую, - отключить редактирование для подборщика изображений и обработать его самостоятельно. Например, я помещал изображение в прокручиваемое, масштабируемое изображение. В верхней части изображения видна фиксированная позиция "Вид рамки", которая рисует индикатор урожая, который видит пользователь. Предполагая, что направляющее представление имеет свойства для видимого прямоугольника (часть для сохранения) и ширины ребер (часть для удаления), вы можете получить прямоугольник обрезки. Вы можете использовать категорию UIImage + Resize для фактического обрезки.
CGRect cropGuide = self.cropGuideView.visibleRect;
UIEdgeInsets edges = self.cropGuideView.edgeWidths;
CGPoint cropGuideOffset = self.cropScrollView.contentOffset;
CGPoint origin = CGPointMake( cropGuideOffset.x + edges.left, cropGuideOffset.y + edges.top );
CGSize size = cropGuide.size;
CGRect crop = { origin, size };
crop.origin.x = crop.origin.x / self.cropScrollView.zoomScale;
crop.origin.y = crop.origin.y / self.cropScrollView.zoomScale;
crop.size.width = crop.size.width / self.cropScrollView.zoomScale;
crop.size.height = crop.size.height / self.cropScrollView.zoomScale;
photo = [photo croppedImage:crop];