12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- //
- // UITableView.swift
- // Mastodon
- //
- // Created by Cirno MainasuK on 2021-3-2.
- //
- import UIKit
- import MastodonAsset
- import MastodonLocalization
- extension UITableView {
-
- func deselectRow(with transitionCoordinator: UIViewControllerTransitionCoordinator?, animated: Bool) {
- guard let indexPathForSelectedRow = indexPathForSelectedRow else { return }
-
- guard let transitionCoordinator = transitionCoordinator else {
- deselectRow(at: indexPathForSelectedRow, animated: animated)
- return
- }
-
- transitionCoordinator.animate(alongsideTransition: { _ in
- self.deselectRow(at: indexPathForSelectedRow, animated: animated)
- }, completion: { context in
- if context.isCancelled {
- self.selectRow(at: indexPathForSelectedRow, animated: animated, scrollPosition: .none)
- }
- })
- }
-
- func blinkRow(at indexPath: IndexPath) {
- DispatchQueue.main.asyncAfter(wallDeadline: .now() + 1) { [weak self] in
- guard let self = self else { return }
- guard let cell = self.cellForRow(at: indexPath) else { return }
- let backgroundColor = cell.backgroundColor
-
- UIView.animate(withDuration: 0.3) {
- cell.backgroundColor = Asset.Colors.brand.color.withAlphaComponent(0.5)
- DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
- UIView.animate(withDuration: 0.3) {
- cell.backgroundColor = backgroundColor
- }
- }
- }
- }
- }
-
- }
|