Non possibile con UIImagePickerController sfortunatamente. La soluzione che consiglio è di disabilitare la modifica per il selettore di immagini e gestirla autonomamente. Ad esempio, ho inserito l'immagine in una vista ingrandibile e ingrandibile. Nella parte superiore della visualizzazione dell'immagine è presente una posizione fissa "visualizzazione guida di ritaglio" che disegna l'indicatore di ritaglio che l'utente vede. Supponendo che la vista guida abbia le proprietà per il rettangolo visibile (la parte da conservare) e le larghezze del bordo (la parte da scartare) è possibile ottenere il rettangolo di ritaglio in questo modo. È possibile utilizzare la categoria UIImage+Resize per eseguire il ritaglio effettivo.
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];
fonte
2012-02-01 18:59:44
Qualcuno può avere la stessa soluzione per swift? –