mirror of
https://github.com/Instagram/IGListKit
synced 2026-05-16 22:08:25 +00:00
Summary: Started work on the plane to get this moving since #418 is up and ready to land. We'll likely need to spend some time fleshing out the API of this, and I think I'll split it up into a couple different PRs once ready for review. Putting this up now to get early feedback. This adds an auto-diffing section controller as outlined in #38. There are several key parts: - Subclass a new section controller `IGListAutoSectionController` (naming wip) - Connect a data source - Implement the data source methods that do 3 things: - Given a top-level object, transform it into an array of **diffable** view models - Given a view model, return a cell - Given a view model, return a size for a cell - A new protocol for the cell `IGListBindable` so that we can control when the cell is updated w/ the view model. - The most important part of this is that it unlocks moving and reloading a cell, which you can't do w/ `UICollectionView` - [ ] Unit test `reloadObjects:` - [x] Add Closes https://github.com/Instagram/IGListKit/pull/494 Reviewed By: amonshiz Differential Revision: D4696966 Pulled By: rnystrom fbshipit-source-id: f21b8341b3ed4389f2a4a106d0d316f481ba6943
100 lines
3.6 KiB
XML
100 lines
3.6 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<Scheme
|
|
LastUpgradeVersion = "0820"
|
|
version = "1.3">
|
|
<BuildAction
|
|
parallelizeBuildables = "YES"
|
|
buildImplicitDependencies = "YES">
|
|
<BuildActionEntries>
|
|
<BuildActionEntry
|
|
buildForTesting = "YES"
|
|
buildForRunning = "YES"
|
|
buildForProfiling = "YES"
|
|
buildForArchiving = "YES"
|
|
buildForAnalyzing = "YES">
|
|
<BuildableReference
|
|
BuildableIdentifier = "primary"
|
|
BlueprintIdentifier = "887D0B351D870D7E009E01F7"
|
|
BuildableName = "IGListKit.framework"
|
|
BlueprintName = "IGListKit"
|
|
ReferencedContainer = "container:IGListKit.xcodeproj">
|
|
</BuildableReference>
|
|
</BuildActionEntry>
|
|
</BuildActionEntries>
|
|
</BuildAction>
|
|
<TestAction
|
|
buildConfiguration = "Debug"
|
|
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
shouldUseLaunchSchemeArgsEnv = "YES"
|
|
codeCoverageEnabled = "YES">
|
|
<Testables>
|
|
<TestableReference
|
|
skipped = "NO">
|
|
<BuildableReference
|
|
BuildableIdentifier = "primary"
|
|
BlueprintIdentifier = "887D0B3E1D870D7F009E01F7"
|
|
BuildableName = "IGListKitTests.xctest"
|
|
BlueprintName = "IGListKitTests"
|
|
ReferencedContainer = "container:IGListKit.xcodeproj">
|
|
</BuildableReference>
|
|
</TestableReference>
|
|
</Testables>
|
|
<MacroExpansion>
|
|
<BuildableReference
|
|
BuildableIdentifier = "primary"
|
|
BlueprintIdentifier = "887D0B351D870D7E009E01F7"
|
|
BuildableName = "IGListKit.framework"
|
|
BlueprintName = "IGListKit"
|
|
ReferencedContainer = "container:IGListKit.xcodeproj">
|
|
</BuildableReference>
|
|
</MacroExpansion>
|
|
<AdditionalOptions>
|
|
</AdditionalOptions>
|
|
</TestAction>
|
|
<LaunchAction
|
|
buildConfiguration = "Debug"
|
|
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
launchStyle = "0"
|
|
useCustomWorkingDirectory = "NO"
|
|
ignoresPersistentStateOnLaunch = "NO"
|
|
debugDocumentVersioning = "YES"
|
|
debugServiceExtension = "internal"
|
|
allowLocationSimulation = "YES">
|
|
<MacroExpansion>
|
|
<BuildableReference
|
|
BuildableIdentifier = "primary"
|
|
BlueprintIdentifier = "887D0B351D870D7E009E01F7"
|
|
BuildableName = "IGListKit.framework"
|
|
BlueprintName = "IGListKit"
|
|
ReferencedContainer = "container:IGListKit.xcodeproj">
|
|
</BuildableReference>
|
|
</MacroExpansion>
|
|
<AdditionalOptions>
|
|
</AdditionalOptions>
|
|
</LaunchAction>
|
|
<ProfileAction
|
|
buildConfiguration = "Release"
|
|
shouldUseLaunchSchemeArgsEnv = "YES"
|
|
savedToolIdentifier = ""
|
|
useCustomWorkingDirectory = "NO"
|
|
debugDocumentVersioning = "YES">
|
|
<MacroExpansion>
|
|
<BuildableReference
|
|
BuildableIdentifier = "primary"
|
|
BlueprintIdentifier = "887D0B351D870D7E009E01F7"
|
|
BuildableName = "IGListKit.framework"
|
|
BlueprintName = "IGListKit"
|
|
ReferencedContainer = "container:IGListKit.xcodeproj">
|
|
</BuildableReference>
|
|
</MacroExpansion>
|
|
</ProfileAction>
|
|
<AnalyzeAction
|
|
buildConfiguration = "Debug">
|
|
</AnalyzeAction>
|
|
<ArchiveAction
|
|
buildConfiguration = "Release"
|
|
revealArchiveInOrganizer = "YES">
|
|
</ArchiveAction>
|
|
</Scheme>
|