diff --git a/Differific.podspec b/Differific.podspec index 7d6ec97..d2a3a66 100644 --- a/Differific.podspec +++ b/Differific.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = "Differific" s.summary = "A fast and convenient diffing framework" - s.version = "0.8.2" + s.version = "0.8.3" s.homepage = "https://github.com/zenangst/Differific" s.license = 'MIT' s.author = { "Christoffer Winterkvist" => "christoffer@winterkvist.com" } diff --git a/Source/iOS+tvOS/UICollectionView+Extensions.swift b/Source/iOS+tvOS/UICollectionView+Extensions.swift index f6e2bba..0bcb1ec 100644 --- a/Source/iOS+tvOS/UICollectionView+Extensions.swift +++ b/Source/iOS+tvOS/UICollectionView+Extensions.swift @@ -18,6 +18,13 @@ extension UICollectionView { return } + if superview == nil { + updateDataSource() + reloadData() + completion?() + return + } + setNeedsLayout() layoutIfNeeded() diff --git a/Source/iOS+tvOS/UITableView+Extensions.swift b/Source/iOS+tvOS/UITableView+Extensions.swift index 14289c6..2c4afea 100644 --- a/Source/iOS+tvOS/UITableView+Extensions.swift +++ b/Source/iOS+tvOS/UITableView+Extensions.swift @@ -20,6 +20,13 @@ public extension UITableView { return } + if superview == nil { + updateDataSource() + reloadData() + completion?() + return + } + setNeedsLayout() layoutIfNeeded() diff --git a/Source/macOS/NSCollectionView+Extensions.swift b/Source/macOS/NSCollectionView+Extensions.swift index 98e6f58..8e2306f 100644 --- a/Source/macOS/NSCollectionView+Extensions.swift +++ b/Source/macOS/NSCollectionView+Extensions.swift @@ -19,6 +19,13 @@ public extension NSCollectionView { return } + if superview == nil { + updateDataSource() + reloadData() + completion?() + return + } + let manager = IndexPathManager() let result = manager.process(changes, section: section) let object = animations ? animator() : self diff --git a/Source/macOS/NSTableView+Extensions.swift b/Source/macOS/NSTableView+Extensions.swift index 95ba3d9..8d8d4e5 100644 --- a/Source/macOS/NSTableView+Extensions.swift +++ b/Source/macOS/NSTableView+Extensions.swift @@ -19,6 +19,13 @@ public extension NSTableView { completion?() return } + + if superview == nil { + updateDataSource() + reloadData() + completion?() + return + } let manager = IndexPathManager() let result = manager.process(changes, section: section) diff --git a/Tests/macOS/NSCollectionViewExtensionTests.swift b/Tests/macOS/NSCollectionViewExtensionTests.swift index 27211c6..01e5f85 100644 --- a/Tests/macOS/NSCollectionViewExtensionTests.swift +++ b/Tests/macOS/NSCollectionViewExtensionTests.swift @@ -50,7 +50,9 @@ class NSCollectionViewExtensionsTests: XCTestCase { let dataSource = DataSourceMock(models: ["Foo", "Bar", "Baz"]) let layout = NSCollectionViewFlowLayout() layout.itemSize = CGSize(width: 250, height: 250) + let superview = NSView() let collectionView = NSCollectionView(frame: .init(origin: .zero, size: layout.itemSize)) + superview.addSubview(collectionView) collectionView.collectionViewLayout = layout collectionView.dataSource = dataSource collectionView.register(NSCollectionViewItem.self, forItemWithIdentifier: NSUserInterfaceItemIdentifier.init("cell")) @@ -78,7 +80,9 @@ class NSCollectionViewExtensionsTests: XCTestCase { let dataSource = DataSourceMock(models: ["Foo", "Bar", "Baz"]) let layout = NSCollectionViewFlowLayout() layout.itemSize = CGSize(width: 250, height: 250) + let superview = NSView() let collectionView = NSCollectionView(frame: .init(origin: .zero, size: layout.itemSize)) + superview.addSubview(collectionView) collectionView.collectionViewLayout = layout collectionView.dataSource = dataSource collectionView.register(NSCollectionViewItem.self, forItemWithIdentifier: NSUserInterfaceItemIdentifier.init("cell"))