ListViewTransactionQueue: changed assert to precondition

ListView: fixed header view flashing
This commit is contained in:
Peter 2019-05-13 22:15:51 +02:00
parent d2592223e0
commit a1aecb45d3
2 changed files with 8 additions and 7 deletions

View File

@ -1142,12 +1142,13 @@ open class ListView: ASDisplayNode, UIScrollViewAccessibilityDelegate, UIGesture
} }
} else if let itemHighlightOverlayBackground = self.itemHighlightOverlayBackground { } else if let itemHighlightOverlayBackground = self.itemHighlightOverlayBackground {
self.itemHighlightOverlayBackground = nil self.itemHighlightOverlayBackground = nil
transition.updateAlpha(node: itemHighlightOverlayBackground, alpha: 0.0, completion: { [weak itemHighlightOverlayBackground] _ in
itemHighlightOverlayBackground?.removeFromSupernode()
})
for (_, headerNode) in self.itemHeaderNodes { for (_, headerNode) in self.itemHeaderNodes {
self.view.bringSubview(toFront: headerNode.view) self.view.bringSubview(toFront: headerNode.view)
} }
self.view.bringSubview(toFront: itemHighlightOverlayBackground.view)
transition.updateAlpha(node: itemHighlightOverlayBackground, alpha: 0.0, completion: { [weak itemHighlightOverlayBackground] _ in
itemHighlightOverlayBackground?.removeFromSupernode()
})
if let verticalScrollIndicator = self.verticalScrollIndicator { if let verticalScrollIndicator = self.verticalScrollIndicator {
verticalScrollIndicator.view.superview?.bringSubview(toFront: verticalScrollIndicator.view) verticalScrollIndicator.view.superview?.bringSubview(toFront: verticalScrollIndicator.view)
} }

View File

@ -15,13 +15,13 @@ public final class ListViewTransactionQueue {
} }
public func addTransaction(_ transaction: @escaping ListViewTransaction) { public func addTransaction(_ transaction: @escaping ListViewTransaction) {
assert(Thread.isMainThread) precondition(Thread.isMainThread)
let beginTransaction = self.transactions.count == 0 let beginTransaction = self.transactions.count == 0
self.transactions.append(transaction) self.transactions.append(transaction)
if beginTransaction { if beginTransaction {
transaction({ [weak self] in transaction({ [weak self] in
assert(Thread.isMainThread) precondition(Thread.isMainThread)
if Thread.isMainThread { if Thread.isMainThread {
if let strongSelf = self { if let strongSelf = self {
@ -39,7 +39,7 @@ public final class ListViewTransactionQueue {
} }
private func endTransaction() { private func endTransaction() {
assert(Thread.isMainThread) precondition(Thread.isMainThread)
Queue.mainQueue().async { Queue.mainQueue().async {
self.transactionCompleted() self.transactionCompleted()
if !self.transactions.isEmpty { if !self.transactions.isEmpty {
@ -48,7 +48,7 @@ public final class ListViewTransactionQueue {
if let nextTransaction = self.transactions.first { if let nextTransaction = self.transactions.first {
nextTransaction({ [weak self] in nextTransaction({ [weak self] in
assert(Thread.isMainThread) precondition(Thread.isMainThread)
if Thread.isMainThread { if Thread.isMainThread {
if let strongSelf = self { if let strongSelf = self {