2016-04-12 76 views
0

我有一個iOS Xcode 7項目編寫在Swift2。我使用NSCoding將照片保存到應用程序:從保存的圖像在UITableView中創建文件夾

class UserImages: NSObject, NSCoding { 

    // MARK: Properties 
    var name: String 
    var photo: NSData // UIImage 

    ... 
} 

這些圖像現在將顯示在一個UITableView

class ImagesTableViewController: UIViewController, UITableViewDelegate { 

    // MARK: Properties 

    var photos = [UserImages]() 

    ... 

    // MARK: TableView Details 

    func numberOfSectionsInTableView(tableView: UITableView) -> Int { 

     return 1 

    } 

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 

     return photos.count 

    } 

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 

     let cellIdentifier = "ImageTableViewCell" 

     let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! ImageTableViewCell 

     let photo = photos[indexPath.row] 

     var image: NSData = photo.photo as NSData 

     cell.nameLabel.text = photo.name 

     cell.photoImageView.image = UIImage(data: image) 

     return cell 

    } 

} 

偉大的作品,在我的自定義單元格,我有一個UILabelUIImageView名稱和照片。

我的問題是,我如何允許用戶在UITableView內創建文件夾並允許照片在文件夾中移動/組織?我想嘗試保持NSCoding,除非無法實現文件夾並仍然使用NSCoding。謝謝。

回答

0

我最終沒有使用NSCoding,而是用CoreData保存所有內容。我建立一個名爲EntityPhotos給了它的attributes

name // Set as String 
imageData // Set as Binary Data 
folder // Set as String 

然後,用戶可以添加新的圖像,並把照片和文件夾,他們希望把它在使用UITextFields的名稱。

我然後設置一個FolderTableViewController顯示foldersrequest並在從所選擇的小區的didSelectRowAtIndexPath捕獲的圖像名稱,並將其轉移至新的ViewController,其具有UITableView和從FolderTableViewController顯示圖像執行request.predicate

適合我需要它做的事情。可能不是最迷人的,但它是有意義的,做了我所需要的。

相關問題