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