diff --git a/Demo/Classes/Presentation/Controllers/AutolayoutCellsController.swift b/Demo/Classes/Presentation/Controllers/AutolayoutCellsController.swift new file mode 100644 index 0000000..522ea56 --- /dev/null +++ b/Demo/Classes/Presentation/Controllers/AutolayoutCellsController.swift @@ -0,0 +1,39 @@ +// +// AutolayoutCellsController.swift +// TableKitDemo +// +// Created by Max Sokolov on 18/06/16. +// Copyright © 2016 Tablet. All rights reserved. +// + +import UIKit +import TableKit + +class AutolayoutCellsController: UIViewController { + + @IBOutlet weak var tableView: UITableView! { + didSet { + tableDirector = TableDirector(tableView: tableView) + tableDirector.register(ConfigurableTableViewCell.self) + } + } + var tableDirector: TableDirector! + + override func viewDidLoad() { + super.viewDidLoad() + + title = "Autolayout cells" + + let section = TableSection() + + var rows = 0 + while rows <= 10 { + rows += 1 + + let row = TableRow(item: ()) + section += row + } + + tableDirector += section + } +} \ No newline at end of file diff --git a/Demo/Classes/Presentation/Controllers/HeaderFooterController.swift b/Demo/Classes/Presentation/Controllers/HeaderFooterController.swift deleted file mode 100644 index 6c8d62f..0000000 --- a/Demo/Classes/Presentation/Controllers/HeaderFooterController.swift +++ /dev/null @@ -1,33 +0,0 @@ -// -// HeaderFooterController.swift -// TabletDemo -// -// Created by Max Sokolov on 16/04/16. -// Copyright © 2016 Tablet. All rights reserved. -// - -import UIKit -import TableKit - -class HeaderFooterController: UIViewController { - - @IBOutlet weak var tableView: UITableView! { - didSet { - tableDirector = TableDirector(tableView: tableView) - } - } - var tableDirector: TableDirector! - - override func viewDidLoad() { - super.viewDidLoad() - - //let rows = TableRowBuilder(items: ["3", "4", "5"]) - - //let headerView = UIView(frame: CGRectMake(0, 0, 100, 100)) - //headerView.backgroundColor = UIColor.lightGrayColor() - - //let section = TableSectionBuilder(headerView: headerView, footerView: nil, rows: [rows]) - - //tableDirector += section - } -} \ No newline at end of file diff --git a/Demo/Classes/Presentation/Controllers/MainController.swift b/Demo/Classes/Presentation/Controllers/MainController.swift index a9694cb..251ab9e 100644 --- a/Demo/Classes/Presentation/Controllers/MainController.swift +++ b/Demo/Classes/Presentation/Controllers/MainController.swift @@ -14,43 +14,38 @@ class MainController: UIViewController { @IBOutlet weak var tableView: UITableView! { didSet { tableDirector = TableDirector(tableView: tableView) - tableDirector.shouldUsePrototypeCellHeightCalculation = true + tableDirector.register(ConfigurableTableViewCell.self) } } var tableDirector: TableDirector! override func viewDidLoad() { super.viewDidLoad() + + title = "TableKit" - let a = TableRowAction(.click) { - (data) in + let clickAction = TableRowAction(.click) { [weak self] (data) in - print("3", data.item) + switch data.path.row { + case 0: + self?.performSegueWithIdentifier("autolayoutcells", sender: nil) + case 1: + self?.performSegueWithIdentifier("rowbuildercells", sender: nil) + case 2: + self?.performSegueWithIdentifier("nibcells", sender: nil) + default: + break + } } - - let b = TableRowBuilder(items: ["1", "2", "3"], actions: [a]) - - - let row1 = TableRow(item: "1") - let row2 = TableRow(item: "2") - let row3 = TableRow(item: "3", actions: [a]) + let rows: [Row] = [ - row1 - .action(TableRowAction(.shouldHighlight) { (data) -> Bool in + TableRow(item: "Autolayout cells", actions: [clickAction]), + TableRow(item: "Row builder cells", actions: [clickAction]), + TableRow(item: "Nib cells", actions: [clickAction]) + ] - print("1") - - return false - }) - .action(TableRowAction(.click) { (data) in - - print("2") - }) - - let section = TableSection() - section.append(builder: b) - - tableDirector += [section] + // automatically creates a section, also could be used like tableDirector.append(rows: rows) + tableDirector += rows } } \ No newline at end of file diff --git a/Demo/Classes/Presentation/Controllers/NibCellsController.swift b/Demo/Classes/Presentation/Controllers/NibCellsController.swift new file mode 100644 index 0000000..15a6cce --- /dev/null +++ b/Demo/Classes/Presentation/Controllers/NibCellsController.swift @@ -0,0 +1,34 @@ +// +// NibCellsController.swift +// TableKitDemo +// +// Created by Max Sokolov on 18/06/16. +// Copyright © 2016 Tablet. All rights reserved. +// + +import UIKit +import TableKit + +class NibCellsController: UITableViewController { + + var tableDirector: TableDirector! + + override func viewDidLoad() { + super.viewDidLoad() + + title = "Nib cells" + + tableDirector = TableDirector(tableView: tableView) + tableDirector.register(NibTableViewCell.self) + + let numbers = [1000, 2000, 3000, 4000, 5000] + + let shouldHighlightAction = TableRowAction(.shouldHighlight) { (_) -> Bool in + return false + } + + let rows: [Row] = numbers.map { TableRow(item: $0, actions: [shouldHighlightAction]) } + + tableDirector.append(rows: rows) + } +} \ No newline at end of file diff --git a/Demo/Classes/Presentation/Controllers/RowBuilderCellsController.swift b/Demo/Classes/Presentation/Controllers/RowBuilderCellsController.swift new file mode 100644 index 0000000..acc3fc2 --- /dev/null +++ b/Demo/Classes/Presentation/Controllers/RowBuilderCellsController.swift @@ -0,0 +1,45 @@ +// +// RowBuilderCellsController.swift +// TableKitDemo +// +// Created by Max Sokolov on 18/06/16. +// Copyright © 2016 Tablet. All rights reserved. +// + +import UIKit +import TableKit + +class RowBuilderCellsController: UIViewController { + + @IBOutlet weak var tableView: UITableView! { + didSet { + tableDirector = TableDirector(tableView: tableView) + tableDirector.register(ConfigurableTableViewCell.self) + } + } + var tableDirector: TableDirector! + + override func viewDidLoad() { + super.viewDidLoad() + + title = "Row builder cells" + + let numbers = ["1", "2", "3", "4", "5"] + + let clickAction = TableRowAction(.click) { [weak self] (data) in + + let alert = UIAlertController(title: nil, message: data.item, preferredStyle: .Alert) + alert.addAction(UIAlertAction(title: "OK", style: .Default, handler: nil)) + + self?.presentViewController(alert, animated: true, completion: nil) + } + + let rowBuilder = TableRowBuilder(items: numbers, actions: [clickAction]) + + let section = TableSection(headerTitle: "Header title", footerTitle: "Footer title") + + section.append(builder: rowBuilder) + + tableDirector.append(section: section) + } +} \ No newline at end of file diff --git a/Demo/Classes/Presentation/Views/AutolayoutTableViewCell.swift b/Demo/Classes/Presentation/Views/AutolayoutTableViewCell.swift new file mode 100644 index 0000000..455f618 --- /dev/null +++ b/Demo/Classes/Presentation/Views/AutolayoutTableViewCell.swift @@ -0,0 +1,31 @@ +// +// AutolayoutTableViewCell.swift +// TabletDemo +// +// Created by Max Sokolov on 24/05/16. +// Copyright © 2016 Tablet. All rights reserved. +// + +import UIKit +import TableKit + +private let LoremIpsumTitle = "Lorem ipsum dolor sit amet, consectetur adipisicing elit" +private let LoremIpsumBody = "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eius adipisci, sed libero. Iste asperiores suscipit, consequatur debitis animi impedit numquam facilis iusto porro labore dolorem, maxime magni incidunt. Delectus, est! Totam at eius excepturi deleniti sed, error repellat itaque omnis maiores tempora ratione dolor velit minus porro aspernatur repudiandae labore quas adipisci esse, nulla tempore voluptatibus cupiditate. Ab provident, atque. Possimus deserunt nisi perferendis, consequuntur odio et aperiam, est, dicta dolor itaque sunt laborum, magni qui optio illum dolore laudantium similique harum. Eveniet quis, libero eligendi delectus repellendus repudiandae ipsum? Vel nam odio dolorem, voluptas sequi minus quo tempore, animi est quia earum maxime. Reiciendis quae repellat, modi non, veniam natus soluta at optio vitae in excepturi minima eveniet dolor." + +class AutolayoutTableViewCell: UITableViewCell, ConfigurableCell { + + typealias T = Void + + @IBOutlet var titleLabel: UILabel! + @IBOutlet var subtitleLabel: UILabel! + + func configure(string: T, isPrototype: Bool) { + + titleLabel.text = LoremIpsumTitle + subtitleLabel.text = LoremIpsumBody + } + + static func estimatedHeight() -> CGFloat { + return 500 + } +} \ No newline at end of file diff --git a/Demo/Classes/Presentation/Views/ConfigurableTableViewCell.swift b/Demo/Classes/Presentation/Views/ConfigurableTableViewCell.swift new file mode 100644 index 0000000..20235c3 --- /dev/null +++ b/Demo/Classes/Presentation/Views/ConfigurableTableViewCell.swift @@ -0,0 +1,19 @@ +// +// ConfigurableTableViewCell.swift +// TableKitDemo +// +// Created by Max Sokolov on 18/06/16. +// Copyright © 2016 Tablet. All rights reserved. +// + +import UIKit +import TableKit + +class ConfigurableTableViewCell: UITableViewCell, ConfigurableCell { + + func configure(text: String, isPrototype: Bool) { + + accessoryType = .DisclosureIndicator + textLabel?.text = text + } +} \ No newline at end of file diff --git a/Demo/Classes/Presentation/Views/NibTableViewCell.swift b/Demo/Classes/Presentation/Views/NibTableViewCell.swift new file mode 100644 index 0000000..2e0d296 --- /dev/null +++ b/Demo/Classes/Presentation/Views/NibTableViewCell.swift @@ -0,0 +1,23 @@ +// +// NibTableViewCell.swift +// TableKitDemo +// +// Created by Max Sokolov on 18/06/16. +// Copyright © 2016 Tablet. All rights reserved. +// + +import UIKit +import TableKit + +class NibTableViewCell: UITableViewCell, ConfigurableCell { + + @IBOutlet weak var titleLabel: UILabel! + + func configure(number: Int, isPrototype: Bool) { + titleLabel.text = "\(number)" + } + + static func defaultHeight() -> CGFloat? { + return 100 + } +} \ No newline at end of file diff --git a/Demo/Classes/Presentation/Views/NibTableViewCell.xib b/Demo/Classes/Presentation/Views/NibTableViewCell.xib new file mode 100644 index 0000000..1b9ae31 --- /dev/null +++ b/Demo/Classes/Presentation/Views/NibTableViewCell.xib @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Demo/Classes/Presentation/Views/StoryboardImageTableViewCell.swift b/Demo/Classes/Presentation/Views/StoryboardImageTableViewCell.swift deleted file mode 100644 index 6d0df90..0000000 --- a/Demo/Classes/Presentation/Views/StoryboardImageTableViewCell.swift +++ /dev/null @@ -1,36 +0,0 @@ -// -// StoryboardImageTableViewCell.swift -// TabletDemo -// -// Created by Max Sokolov on 24/05/16. -// Copyright © 2016 Tablet. All rights reserved. -// - -import UIKit -import TableKit - -class StoryboardImageTableViewCell: UITableViewCell, ConfigurableCell { - - typealias T = String - - @IBOutlet var titleLabel: UILabel! - @IBOutlet var subtitleLabel: UILabel! - @IBOutlet var customImageView: UIImageView! - - func configure(string: T, isPrototype: Bool) { - - titleLabel.text = string - subtitleLabel.text = "Copyright © 2016 Tablet. All rights reserved.Copyright © 2016 Tablet. All rights reserved.Copyright © 2016 Tablet. All rights reserved.Copyright © 2016 Tablet. All rights reserved.Copyright © 2016 Tablet. All rights reserved.Copyright © 2016 Tablet. All rights reserved.Copyright © 2016 Tablet. All rights reserved.Copyright © 2016 Tablet. All rights reserved.Copyright © 2016 Tablet. All rights reserved.Copyright © 2016 Tablet. All rights reserved.Copyright © 2016 Tablet. All rights reserved.1" - } - - static func estimatedHeight() -> CGFloat { - return 500 - } - - override func layoutSubviews() { - super.layoutSubviews() - - contentView.layoutIfNeeded() - subtitleLabel.preferredMaxLayoutWidth = subtitleLabel.bounds.size.width - } -} \ No newline at end of file diff --git a/Demo/Classes/Presentation/Views/StoryboardTableViewCell.swift b/Demo/Classes/Presentation/Views/StoryboardTableViewCell.swift deleted file mode 100644 index a8b84c0..0000000 --- a/Demo/Classes/Presentation/Views/StoryboardTableViewCell.swift +++ /dev/null @@ -1,19 +0,0 @@ -// -// StoryboardTableViewCell.swift -// TabletDemo -// -// Created by Max Sokolov on 16/04/16. -// Copyright © 2016 Tablet. All rights reserved. -// - -import UIKit -import TableKit - -class StoryboardTableViewCell: UITableViewCell, ConfigurableCell { - - typealias T = String - - func configure(value: T, isPrototype: Bool) { - textLabel?.text = value - } -} \ No newline at end of file diff --git a/Demo/Resources/Storyboards/LaunchScreen.storyboard b/Demo/Resources/Storyboards/LaunchScreen.storyboard index 580ceb8..f4fc7f7 100644 --- a/Demo/Resources/Storyboards/LaunchScreen.storyboard +++ b/Demo/Resources/Storyboards/LaunchScreen.storyboard @@ -1,5 +1,5 @@ - + diff --git a/Demo/Resources/Storyboards/Main.storyboard b/Demo/Resources/Storyboards/Main.storyboard index 4d18da9..8ea83c1 100644 --- a/Demo/Resources/Storyboards/Main.storyboard +++ b/Demo/Resources/Storyboards/Main.storyboard @@ -1,5 +1,5 @@ - + @@ -16,17 +16,17 @@ - + - + - + @@ -39,7 +39,7 @@ - + @@ -49,7 +49,7 @@ + + + + + + @@ -80,19 +86,10 @@ - - - - - - - - - @@ -107,17 +104,53 @@ - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -126,19 +159,9 @@ - + - - - - - - - - - - - + @@ -156,7 +179,35 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Demo/TableKitDemo.xcodeproj/project.pbxproj b/Demo/TableKitDemo.xcodeproj/project.pbxproj index 67cde0e..0de8bcb 100644 --- a/Demo/TableKitDemo.xcodeproj/project.pbxproj +++ b/Demo/TableKitDemo.xcodeproj/project.pbxproj @@ -7,7 +7,13 @@ objects = { /* Begin PBXBuildFile section */ - DA08A0531CF4E9B500BBF1F8 /* StoryboardImageTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA08A0521CF4E9B500BBF1F8 /* StoryboardImageTableViewCell.swift */; }; + DA08A0531CF4E9B500BBF1F8 /* AutolayoutTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA08A0521CF4E9B500BBF1F8 /* AutolayoutTableViewCell.swift */; }; + DA55465D1D1569CC00AA83EE /* AutolayoutCellsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA55465C1D1569CC00AA83EE /* AutolayoutCellsController.swift */; }; + DA5546601D156A4F00AA83EE /* ConfigurableTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA55465F1D156A4F00AA83EE /* ConfigurableTableViewCell.swift */; }; + DA5546621D1573D300AA83EE /* RowBuilderCellsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA5546611D1573D300AA83EE /* RowBuilderCellsController.swift */; }; + DA5546641D15762000AA83EE /* NibTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA5546631D15762000AA83EE /* NibTableViewCell.swift */; }; + DA5546661D15765900AA83EE /* NibTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = DA5546651D15765900AA83EE /* NibTableViewCell.xib */; }; + DA5546681D15771D00AA83EE /* NibCellsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA5546671D15771D00AA83EE /* NibCellsController.swift */; }; DA9EA7D91D0EC65B0021F650 /* TableKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA9EA7D61D0EC5C60021F650 /* TableKit.framework */; }; DA9EA7DA1D0EC65B0021F650 /* TableKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = DA9EA7D61D0EC5C60021F650 /* TableKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; DAC2D5CA1C9D303E009E9C19 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = DAC2D5C91C9D303E009E9C19 /* AppDelegate.swift */; }; @@ -15,8 +21,6 @@ DAC2D5D01C9D30A7009E9C19 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DAC2D5CE1C9D30A7009E9C19 /* LaunchScreen.storyboard */; }; DAC2D69C1C9E75E3009E9C19 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DAC2D69B1C9E75E3009E9C19 /* Assets.xcassets */; }; DACB71761CC2D63D00432BD3 /* MainController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DACB71751CC2D63D00432BD3 /* MainController.swift */; }; - DACB71781CC2D6ED00432BD3 /* StoryboardTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DACB71771CC2D6ED00432BD3 /* StoryboardTableViewCell.swift */; }; - DACB717A1CC2D89D00432BD3 /* HeaderFooterController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DACB71791CC2D89D00432BD3 /* HeaderFooterController.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -58,7 +62,13 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - DA08A0521CF4E9B500BBF1F8 /* StoryboardImageTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StoryboardImageTableViewCell.swift; sourceTree = ""; }; + DA08A0521CF4E9B500BBF1F8 /* AutolayoutTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AutolayoutTableViewCell.swift; sourceTree = ""; }; + DA55465C1D1569CC00AA83EE /* AutolayoutCellsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AutolayoutCellsController.swift; sourceTree = ""; }; + DA55465F1D156A4F00AA83EE /* ConfigurableTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConfigurableTableViewCell.swift; sourceTree = ""; }; + DA5546611D1573D300AA83EE /* RowBuilderCellsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RowBuilderCellsController.swift; sourceTree = ""; }; + DA5546631D15762000AA83EE /* NibTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NibTableViewCell.swift; sourceTree = ""; }; + DA5546651D15765900AA83EE /* NibTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = NibTableViewCell.xib; sourceTree = ""; }; + DA5546671D15771D00AA83EE /* NibCellsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NibCellsController.swift; sourceTree = ""; }; DA9EA7D01D0EC5C50021F650 /* TableKit.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = TableKit.xcodeproj; path = ../TableKit.xcodeproj; sourceTree = ""; }; DAB7EB271BEF787300D2AD5E /* TableKitDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TableKitDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; DAC2D5C91C9D303E009E9C19 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; @@ -67,8 +77,6 @@ DAC2D69B1C9E75E3009E9C19 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; DAC2D69D1C9E78B5009E9C19 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; DACB71751CC2D63D00432BD3 /* MainController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MainController.swift; sourceTree = ""; }; - DACB71771CC2D6ED00432BD3 /* StoryboardTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StoryboardTableViewCell.swift; sourceTree = ""; }; - DACB71791CC2D89D00432BD3 /* HeaderFooterController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HeaderFooterController.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -175,7 +183,9 @@ isa = PBXGroup; children = ( DACB71751CC2D63D00432BD3 /* MainController.swift */, - DACB71791CC2D89D00432BD3 /* HeaderFooterController.swift */, + DA55465C1D1569CC00AA83EE /* AutolayoutCellsController.swift */, + DA5546611D1573D300AA83EE /* RowBuilderCellsController.swift */, + DA5546671D15771D00AA83EE /* NibCellsController.swift */, ); path = Controllers; sourceTree = ""; @@ -183,8 +193,10 @@ DACB71741CC2D5FD00432BD3 /* Views */ = { isa = PBXGroup; children = ( - DACB71771CC2D6ED00432BD3 /* StoryboardTableViewCell.swift */, - DA08A0521CF4E9B500BBF1F8 /* StoryboardImageTableViewCell.swift */, + DA55465F1D156A4F00AA83EE /* ConfigurableTableViewCell.swift */, + DA08A0521CF4E9B500BBF1F8 /* AutolayoutTableViewCell.swift */, + DA5546631D15762000AA83EE /* NibTableViewCell.swift */, + DA5546651D15765900AA83EE /* NibTableViewCell.xib */, ); path = Views; sourceTree = ""; @@ -274,6 +286,7 @@ buildActionMask = 2147483647; files = ( DAC2D5CF1C9D30A7009E9C19 /* Main.storyboard in Resources */, + DA5546661D15765900AA83EE /* NibTableViewCell.xib in Resources */, DAC2D5D01C9D30A7009E9C19 /* LaunchScreen.storyboard in Resources */, DAC2D69C1C9E75E3009E9C19 /* Assets.xcassets in Resources */, ); @@ -286,11 +299,14 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - DACB71781CC2D6ED00432BD3 /* StoryboardTableViewCell.swift in Sources */, DACB71761CC2D63D00432BD3 /* MainController.swift in Sources */, + DA5546621D1573D300AA83EE /* RowBuilderCellsController.swift in Sources */, + DA55465D1D1569CC00AA83EE /* AutolayoutCellsController.swift in Sources */, + DA5546681D15771D00AA83EE /* NibCellsController.swift in Sources */, DAC2D5CA1C9D303E009E9C19 /* AppDelegate.swift in Sources */, - DACB717A1CC2D89D00432BD3 /* HeaderFooterController.swift in Sources */, - DA08A0531CF4E9B500BBF1F8 /* StoryboardImageTableViewCell.swift in Sources */, + DA5546641D15762000AA83EE /* NibTableViewCell.swift in Sources */, + DA5546601D156A4F00AA83EE /* ConfigurableTableViewCell.swift in Sources */, + DA08A0531CF4E9B500BBF1F8 /* AutolayoutTableViewCell.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; };