mirror of
https://github.com/SideStore/SideStore.git
synced 2026-02-09 14:53:25 +01:00
Fixes Error Log context menu appearing while scrolling table view
This commit is contained in:
@@ -19,6 +19,13 @@ class ErrorLogViewController: UITableViewController
|
||||
private lazy var dataSource = self.makeDataSource()
|
||||
private var expandedErrorIDs = Set<NSManagedObjectID>()
|
||||
|
||||
private var isScrolling = false {
|
||||
didSet {
|
||||
guard self.isScrolling != oldValue else { return }
|
||||
self.updateButtonInteractivity()
|
||||
}
|
||||
}
|
||||
|
||||
private lazy var timeFormatter: DateFormatter = {
|
||||
let dateFormatter = DateFormatter()
|
||||
dateFormatter.dateStyle = .none
|
||||
@@ -106,6 +113,15 @@ private extension ErrorLogViewController
|
||||
])
|
||||
|
||||
cell.menuButton.menu = menu
|
||||
|
||||
if self.isScrolling
|
||||
{
|
||||
cell.menuButton.showsMenuAsPrimaryAction = false
|
||||
}
|
||||
else
|
||||
{
|
||||
cell.menuButton.showsMenuAsPrimaryAction = true
|
||||
}
|
||||
}
|
||||
|
||||
// Include errorDescriptionTextView's text in cell summary.
|
||||
@@ -315,3 +331,39 @@ extension ErrorLogViewController
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension ErrorLogViewController
|
||||
{
|
||||
override func scrollViewWillBeginDragging(_ scrollView: UIScrollView)
|
||||
{
|
||||
self.isScrolling = true
|
||||
}
|
||||
|
||||
override func scrollViewDidEndDecelerating(_ scrollView: UIScrollView)
|
||||
{
|
||||
self.isScrolling = false
|
||||
}
|
||||
|
||||
override func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool)
|
||||
{
|
||||
guard !decelerate else { return }
|
||||
self.isScrolling = false
|
||||
}
|
||||
|
||||
private func updateButtonInteractivity()
|
||||
{
|
||||
guard #available(iOS 14, *) else { return }
|
||||
|
||||
for case let cell as ErrorLogTableViewCell in self.tableView.visibleCells
|
||||
{
|
||||
if self.isScrolling
|
||||
{
|
||||
cell.menuButton.showsMenuAsPrimaryAction = false
|
||||
}
|
||||
else
|
||||
{
|
||||
cell.menuButton.showsMenuAsPrimaryAction = true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user