Desafortunadamente, no es posible con UIImagePickerController. La solución que recomiendo es desactivar la edición del selector de imágenes y manejarlo usted mismo. Por ejemplo, puse la imagen en una vista de imagen desplazable y con zoom. En la parte superior de la vista de imagen hay una "vista de guía de cultivo" de posición fija que dibuja el indicador de recorte que ve el usuario. Suponiendo que la vista de guía tiene propiedades para la rect visible (la parte que se debe mantener) y los anchos de los bordes (la parte para descartar) puede obtener el rectángulo de recorte de esa manera. Puede usar la categoría UIImage+Resize para realizar el recorte real.
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];
¿Alguien puede tener la misma solución para swift? –