Mam UIImageView, który umożliwia użytkownikowi umieszczanie i zatrzymywanie obrazu, dopóki nie będzie można go zapisać. Problem polega na tym, że nie mogę dowiedzieć się, jak właściwie zapisać i odzyskać obraz, który umieściłem w widoku.
Pobrałem i umieściłem obraz w UIImageView w następujący sposób:
//Get Image
- (void) getPicture:(id)sender {
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.allowsEditing = YES;
picker.sourceType = (sender == myPic) ? UIImagePickerControllerSourceTypeCamera : UIImagePickerControllerSourceTypeSavedPhotosAlbum;
[self presentModalViewController:picker animated:YES];
[picker release];
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage (UIImage *)image editingInfo:(NSDictionary *)editingInfo {
myPic.image = image;
[picker dismissModalViewControllerAnimated:YES];
}
Wyświetla wybrany obraz w moim UIImageView dobrze, ale nie mam pojęcia, jak go zapisać. Zapisuję wszystkie pozostałe fragmenty widoku (głównie UITextfield) w danych podstawowych. Szukałem i szukałem, i wypróbowałem wiele fragmentów kodu, które ludzie sugerowali, ale albo nie wpisuję kodu poprawnie, albo te sugestie nie działają ze sposobem, w jaki mam skonfigurowany kod. To prawdopodobnie pierwsza. Chciałbym zapisać obraz w UIImageView przy użyciu tej samej akcji (przycisku zapisywania), której używam do zapisywania tekstu w UITextFields. Oto jak zapisuję informacje o moim polu UITextField:
// Handle Save Button
- (void)save {
// Get Info From UI
[self.referringObject setValue:self.myInfo.text forKey:@"myInfo"];
Jak powiedziałem wcześniej, próbowałem kilku metod, aby to zadziałało, ale nie mogę tego pojąć. Po raz pierwszy w życiu chciałem wyrządzić fizyczną krzywdę obiektowi nieożywionemu, ale zdołałem się powstrzymać.
Chciałbym móc zapisać obraz, który użytkownik umieszcza w UIImageView w folderze dokumentów aplikacji, a następnie móc go pobrać i umieścić w innym UIImageView w celu wyświetlenia, gdy użytkownik wypchnie ten widok na stos. Każda pomoc jest mile widziana!
źródło
Wersja Swift 3.0
źródło
To jest odpowiedź Fangming Ninga na Swift 4.2 , zaktualizowana o zalecaną i bardziej Swifty metodę pobierania ścieżki katalogu dokumentu oraz lepszą dokumentację. Podziękowania dla Fangming Ning również za nową metodę.
Sprawdź tutaj wszystkie możliwe opcje zapisu danych.
źródło
fileURLWithPath
razem zeabsoluteString
jest źle.źródło
Swift 4 z rozszerzeniem
Przykład użycia
źródło
W Swift:
źródło