首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MWPhotoBrowser -如何实现删除照片功能?

MWPhotoBrowser -如何实现删除照片功能?
EN

Stack Overflow用户
提问于 2014-01-22 03:58:01
回答 1查看 620关注 0票数 6

我正在为我的应用程序使用MWPhotoBrowser。我需要给我的用户删除功能。有没有什么方法可以实现删除特定照片或多张照片的功能?

需要快速帮助。

EN

回答 1

Stack Overflow用户

发布于 2015-10-30 05:06:47

我在swift中通过从库外部添加这个扩展来做到这一点:

代码语言:javascript
复制
extension MWPhotoBrowser {

    public override func viewWillLayoutSubviews() {
        super.viewWillLayoutSubviews()

        if let _ = valueForKey("_gridController") as? MWGridViewController {
            let leftButtonItem = editButtonItem()
            //leftButtonItem.tintColor = QorumColors.ThemeWhite
            navigationItem.leftBarButtonItem = leftButtonItem
        } else {
            navigationItem.leftBarButtonItem = nil
        }
    }

    public override func setEditing(editing: Bool, animated: Bool) {
        super.setEditing(editing, animated: animated)

        if editing {
            navigationItem.leftBarButtonItem?.title = "Delete"
            //navigationItem.leftBarButtonItem?.tintColor = QorumColors.Nickname

            displaySelectionButtons = true
            title = "Delete Photos"

            let gridController = valueForKey("_gridController") as! MWGridViewController
            gridController.selectionMode = displaySelectionButtons
            gridController.collectionView!.reloadData()
        } else {
            let nav = self.navigationController as! TempPresentVC
            let photosToDelete = nav.selectedPhotos

            let afterButtonPress = {
                //self.navigationItem.leftBarButtonItem?.tintColor = QorumColors.ThemeWhite

                self.displaySelectionButtons = false
                self.updateNavigation()

                let gridController = self.valueForKey("_gridController") as! MWGridViewController
                gridController.selectionMode = self.displaySelectionButtons
                gridController.collectionView!.reloadData()
            }

            guard photosToDelete.count > 0 else {
                afterButtonPress()
                return
            }

            let title = "Delete Photo"
            let message = "Are you sure you want to delete these photos?"
            let action = "Delete"
            let cancelAction = "Cancel"

            let alert = UIAlertController(title: title, message: message, preferredStyle: UIAlertControllerStyle.Alert)
            let declineButton = UIAlertAction(title: cancelAction, style: .Default, handler: { (action: UIAlertAction) in
                afterButtonPress()
            })
            let acceptButton = UIAlertAction(title: action, style: .Default, handler: { (action: UIAlertAction) in
                afterButtonPress()
            })
            alert.addAction(declineButton)
            alert.addAction(acceptButton)
            UIApplication.topMostController().presentVC(alert) //private lib
        }
    }
}



class TempPresentVC: UINavigationController, MWPhotoBrowserDelegate {
    var selectedPhotos = [Int]()

    func photoBrowser(photoBrowser: MWPhotoBrowser!, photoAtIndex index: UInt, selectedChanged selected: Bool) {
        if selected {
            selectedPhotos.append(index.toInt)
        } else {
            selectedPhotos.removeObject(index.toInt)
        }
    }
}

这不允许您在单个照片视图模式下删除照片,但从这个代码库开始,该部分将很容易实现。

注意,我在里面使用的一些东西是我在其他类中编写的私有函数,但它们的作用应该很清楚。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21267815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档