2017-03-21 59 views
0

我正在嘗試在xcode 8 swift 3中創建一個應用程序,其中用戶使用imagePickerController添加圖像,然後當用戶單擊保存或退出imagePickerController時我希望圖像保存在本地,所以下次該應用程序加載時(例如設備重新啓動後)圖像在那裏。只是爲了清楚我不想將圖像保存到相機膠捲。這是我的代碼到目前爲止沒有任何保存或加載方法,(只是保存按鈕引用)任何幫助將非常讚賞,因爲我一直在試圖做很久。如何在UIImageView中保存並加載圖像?

import UIKit 


class timetable: UIViewController, UINavigationControllerDelegate, UIImagePickerControllerDelegate { 

@IBOutlet var imageviewtimetable: UIImageView! 


@IBAction func save(_ sender: Any) { 


} 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view. 

} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

@IBAction func selectImageFromPhotoLibrary(_ sender: Any) { 

    let imagePickerController = UIImagePickerController() 
    imagePickerController.sourceType = .photoLibrary 
    imagePickerController.delegate = self 
    present(imagePickerController, animated: true, completion: nil) 


} 



func imagePickerControllerDidCancel(_ picker: UIImagePickerController){ 
    dismiss(animated: true, completion:nil) 
} 


func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) { 

    let selectedImage = info[UIImagePickerControllerOriginalImage] as! UIImage 
    imageviewtimetable.image = selectedImage 

    dismiss(animated: true,completion:nil) 
} 





} 
+0

你可以將它保存到'NSUserDefaults':http://stackoverflow.com/a/6648563/188331,雖然這不是一個好方法。解釋和更好的解決方案[這裏](http://stackoverflow.com/a/32793289/188331) – Raptor

回答

1

對於信息:click here

保存圖像文檔目錄

func saveImageDocumentDirectory(){ 
    let fileManager = NSFileManager.defaultManager() 
    let paths = (NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as NSString).stringByAppendingPathComponent("apple.jpg") 
    let image = UIImage(named: "apple.jpg") 
    print(paths) 
    let imageData = UIImageJPEGRepresentation(image!, 0.5) 
    fileManager.createFileAtPath(paths as String, contents: imageData, attributes: nil) 
} 

獲取文件目錄路徑

func getDirectoryPath() -> String { 
let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true) 
let documentsDirectory = paths[0] 
return documentsDirectory 

}

得到的圖像來回回M證件目錄

func getImage(){ 
    let fileManager = NSFileManager.defaultManager() 
    let imagePAth = (self.getDirectoryPath() as NSString).stringByAppendingPathComponent("apple.jpg") 
    if fileManager.fileExistsAtPath(imagePAth){ 
     self.imageView.image = UIImage(contentsOfFile: imagePAth) 
    }else{ 
     print("No Image") 
    } 
} 

創建目錄

func createDirectory(){ 
    let fileManager = NSFileManager.defaultManager() 
    let paths = (NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as NSString).stringByAppendingPathComponent("customDirectory") 
    if !fileManager.fileExistsAtPath(paths){ 
     try! fileManager.createDirectoryAtPath(paths, withIntermediateDirectories: true, attributes: nil) 
    }else{ 
     print("Already dictionary created.") 
    } 
} 
+1

Downvoted for copypasting from external URL without copy to the creator。 https://iosdevcenters.blogspot.com/2016/04/save-and-get-image-from-document.html請勿在沒有署名和版權信息的情況下發布來自第三方網站的代碼。使用註釋部分並將OP鏈接到源代碼。 –

+0

很好嗎?先生Sneak – nick

+0

是的:)我已upvoted你。編輯它並鍵入「採取從此源:」 –

相關問題