Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 如何像apple Mail应用程序一样设置UITableViewCells的动画_Swift_Uitableview_Animation - Fatal编程技术网

Swift 如何像apple Mail应用程序一样设置UITableViewCells的动画

Swift 如何像apple Mail应用程序一样设置UITableViewCells的动画,swift,uitableview,animation,Swift,Uitableview,Animation,我希望你一切都好!。 我在右上角有一个编辑按钮,现在当我按下它时,它变成了通常的编辑样式。现在,当它变成编辑模式时,它只是快速移动我的手机,我想给它做一个动画,让它像邮件应用程序一样平稳地移动:(显示苹果邮件应用程序的gif) 更重要的是,我知道有一种方法可以显示,但问题是我使用IBAction作为编辑按钮:)希望你能理解我的意思,新年快乐 我的密码!: import UIKit class NotificationsViewController: UIViewController {

我希望你一切都好!。 我在右上角有一个编辑按钮,现在当我按下它时,它变成了通常的编辑样式。现在,当它变成编辑模式时,它只是快速移动我的手机,我想给它做一个动画,让它像邮件应用程序一样平稳地移动:(显示苹果邮件应用程序的gif)

更重要的是,我知道有一种方法可以显示,但问题是我使用IBAction作为编辑按钮:)希望你能理解我的意思,新年快乐

我的密码!:

import UIKit

class NotificationsViewController: UIViewController {
    
    
    @IBOutlet weak var tableView: UITableView!
    @IBOutlet weak var editButton: UIBarButtonItem!
    
    @IBOutlet weak var toolBar: UIToolbar!
    
    
    
    
    
    var arrayOfNotifications = [Notification]()
    
    var selectedCounter = 0
    
    
    
    
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        
        arrayOfNotifications = createArrayOfNotifications()
        
        configureTableView()

        
        self.navigationItem.titleView = setTitle(title: "Notifications", subtitle: "1 New")
        
        //We hide the toolBar till we hit the "Edit"
        toolBar.isHidden = true
        
        
        configureUIButtons()
        
        
        
        
    }
    
    
    
    func configureTableView() {
        tableView.dataSource = self
        tableView.delegate = self
        tableView.rowHeight = 80
    }
    
    
    func createArrayOfNotifications() -> [Notification] {
        // Create Date
        let date = Date()
        
        // Create Date Formatter
        let dateFormatter = DateFormatter()
        
        // Set Date/Time Style
        dateFormatter.dateStyle = .long
        dateFormatter.timeStyle = .short
        
        // Convert Date to String
        let currentDate = dateFormatter.string(from: date) // September 9, 2020 at 12:24 PM
        
        var tempNotificationsArr : [Notification] = []
        
        let notification1 = Notification(image: UIImage(systemName: "message.fill")!, title: "Hello Aviad", date: currentDate, team: "In: Loopers")
        
        tempNotificationsArr.append(notification1)
        
        
        return tempNotificationsArr
    }
    
    
    
    
    // MARK: - UIBarButtonItem Creation and Configuration
    
     func configureUIButtons() {
        
//        let toolbarButtonItems = [
//            customTitleBarButtonItem,
//            flexibleSpaceBarButtonItem,
//            deleteBarButtonItem
//        ]
        
        let toolbarButtonItems = [
            markBarButtonItem, flexibleSpaceBarButtonItem, deleteBarButtonItem
        ]
        
        toolBar.setItems(toolbarButtonItems, animated: true)
    }
    
    
    
    var deleteBarButtonItem: UIBarButtonItem = UIBarButtonItem(title: "Delete", style: .plain, target: self, action: #selector(NotificationsViewController.deleteButtonItemClicked(_:)))
    
    
    
//    var deleteBarButtonItem: UIBarButtonItem {
//        let deleteBarButtonItem: UIBarButtonItem = UIBarButtonItem(title: "Delete", style: .plain, target: self, action: #selector(NotificationsViewController.deleteButtonItemClicked(_:)));
//
//        return deleteBarButtonItem
//
//    }

    
    var flexibleSpaceBarButtonItem: UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
    
    
//    var flexibleSpaceBarButtonItem: UIBarButtonItem {
//        return UIBarButtonItem(barButtonSystemItem: .flexibleSpace,
//                               target: nil,
//                               action: nil)
//    }
    
    
    
    var markBarButtonItem: UIBarButtonItem = UIBarButtonItem(title: "Mark", style: .plain, target: self, action: #selector(NotificationsViewController.markButtonItemClicked(_:)))
    
//
//    var markBarButtonItem: UIBarButtonItem = UIBarButtonItem(title: "Mark", image: nil, primaryAction: nil, menu: menuItems())
//
//
    
    
//
//    var customTitleBarButtonItem: UIBarButtonItem {
//        let markMenu = UIMenu(title: "", children: [
//            UIAction(title: "Flag", image: UIImage(systemName: "flag")) { action in
//                print("Flag is pressed")
//            },
//            UIAction(title: "Mark as Unread", image: UIImage(systemName: "envelope.badge")) { action in
//                print("Mark as Unread is pressed")
//            },
//        ])
//
//        return UIBarButtonItem(title: "Mark", menu: markMenu)
//
//    }
    
    
    
    // MARK: - Actions
    @objc
    func deleteButtonItemClicked(_ barButtonItem: UIBarButtonItem) {
        print("Delete Button is clicked \(barButtonItem).")
    }

    
    @objc
    func markButtonItemClicked(_ barButtonItem: UIBarButtonItem ) -> UIMenu {
        print("Mark is pressed")


        let markMenu = UIMenu(title: "", children: [
                    UIAction(title: "Flag", image: UIImage(systemName: "flag")) { action in
                        print("Flag is pressed")
                    },
                    UIAction(title: "Mark as Unread", image: UIImage(systemName: "envelope.badge")) { action in
                        print("Mark as Unread is pressed")
                    },
                ])

                return markMenu

    }
    
    
    func menuItems() -> UIMenu {
        let markMenu = UIMenu(title: "", children: [
            UIAction(title: "Flag", image: UIImage(systemName: "flag")) { action in
                print("Flag is pressed")
            },
            UIAction(title: "Mark as Unread", image: UIImage(systemName: "envelope.badge")) { action in
                print("Mark as Unread is pressed")
            },
        ])
        
        return markMenu
    }
    
    
    
    
    //TODO: - Pop up the tool bar, - Edit function
    @IBAction func editAction(_ sender: UIBarButtonItem) {
        
        
        if(self.tableView.isEditing == true)
        {
            self.tableView.isEditing = false
            self.navigationItem.rightBarButtonItem?.title = "Edit"
            toolBar.isHidden = true
            
        }
        else
        {
            tableView.allowsMultipleSelectionDuringEditing = true
            
            self.tableView.isEditing = true
            self.navigationItem.rightBarButtonItem?.title = "Cancel"
            toolBar.isHidden = false
            
                        
            
            
//            deleteBarButtonItem.isEnabled = true
//            customTitleBarButtonItem.isEnabled = true
            
            
            
            toolBarAnimation()
            
        }
        
    }
    
    
    
而不是

self.tableView.isEditing = true
使用


请向我们显示您的
UITableView
编辑代码。也许更详细一点,而不是一个链接?我之所以评论这一点,是因为
UITableView
附带了编辑模式和动画!不确定它们与Mail.app相比如何,更不用说差异了。但最好能更详细地展示您所做的尝试。@dfd当然,我现在正在添加我的代码!:)是的,我正在使用它进行设置编辑,问题是我希望细胞像苹果一样平滑:)
self.tableView.setEditing(true, animated: true)