Skip to content

Commit

Permalink
Fix CustomCollectionView-Swift sample (#22)
Browse files Browse the repository at this point in the history
* Updated copyright notices

* Fixed crash and removed storyboard
  • Loading branch information
george-gw authored and maicki committed May 3, 2017
1 parent 82b7806 commit a4ddc07
Show file tree
Hide file tree
Showing 7 changed files with 63 additions and 88 deletions.
12 changes: 0 additions & 12 deletions examples/CustomCollectionView-Swift/Sample.xcodeproj/project.pbxproj
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
27F2D2683285DCB73EE734BB /* Pods_Sample.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F7DA4A9952245B7E9BA8201F /* Pods_Sample.framework */; };
5D823AD51DD3B7770075E14A /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D823AD41DD3B7770075E14A /* AppDelegate.swift */; };
5D823AD71DD3B7770075E14A /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D823AD61DD3B7770075E14A /* ViewController.swift */; };
5D823ADA1DD3B7770075E14A /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5D823AD81DD3B7770075E14A /* Main.storyboard */; };
5D823ADC1DD3B7770075E14A /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 5D823ADB1DD3B7770075E14A /* Assets.xcassets */; };
5D823ADF1DD3B7770075E14A /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5D823ADD1DD3B7770075E14A /* LaunchScreen.storyboard */; };
5D823AE71DD3B7D30075E14A /* MosaicCollectionViewLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D823AE61DD3B7D30075E14A /* MosaicCollectionViewLayout.swift */; };
Expand All @@ -21,7 +20,6 @@
5D823AD11DD3B7770075E14A /* Sample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Sample.app; sourceTree = BUILT_PRODUCTS_DIR; };
5D823AD41DD3B7770075E14A /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
5D823AD61DD3B7770075E14A /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = "<group>"; };
5D823AD91DD3B7770075E14A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
5D823ADB1DD3B7770075E14A /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
5D823ADE1DD3B7770075E14A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
5D823AE01DD3B7770075E14A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
Expand Down Expand Up @@ -78,7 +76,6 @@
5D823AD61DD3B7770075E14A /* ViewController.swift */,
5D823AE81DD3B7D70075E14A /* ImageCellNode.swift */,
5D823AE61DD3B7D30075E14A /* MosaicCollectionViewLayout.swift */,
5D823AD81DD3B7770075E14A /* Main.storyboard */,
5D823ADB1DD3B7770075E14A /* Assets.xcassets */,
5D823ADD1DD3B7770075E14A /* LaunchScreen.storyboard */,
5D823AE01DD3B7770075E14A /* Info.plist */,
Expand Down Expand Up @@ -159,7 +156,6 @@
files = (
5D823ADF1DD3B7770075E14A /* LaunchScreen.storyboard in Resources */,
5D823ADC1DD3B7770075E14A /* Assets.xcassets in Resources */,
5D823ADA1DD3B7770075E14A /* Main.storyboard in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down Expand Up @@ -228,14 +224,6 @@
/* End PBXSourcesBuildPhase section */

/* Begin PBXVariantGroup section */
5D823AD81DD3B7770075E14A /* Main.storyboard */ = {
isa = PBXVariantGroup;
children = (
5D823AD91DD3B7770075E14A /* Base */,
);
name = Main.storyboard;
sourceTree = "<group>";
};
5D823ADD1DD3B7770075E14A /* LaunchScreen.storyboard */ = {
isa = PBXVariantGroup;
children = (
Expand Down
26 changes: 18 additions & 8 deletions examples/CustomCollectionView-Swift/Sample/AppDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,22 @@
// AppDelegate.swift
// Sample
//
// Created by Rajeev Gupta on 11/9/16.
//
// Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
// This source code is licensed under the BSD-style license found in the
// LICENSE file in the root directory of this source tree. An additional grant
// of patent rights can be found in the PATENTS file in the same directory.
// Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
// Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
// FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//

import UIKit
Expand All @@ -27,6 +30,13 @@ class AppDelegate: UIResponder, UIApplicationDelegate {

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
let window = UIWindow(frame: UIScreen.main.bounds)
window.backgroundColor = .white
window.rootViewController = ViewController()
window.makeKeyAndVisible()

self.window = window

return true
}

Expand Down

This file was deleted.

22 changes: 11 additions & 11 deletions examples/CustomCollectionView-Swift/Sample/ImageCellNode.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,22 @@
// ImageCellNode.swift
// Sample
//
// Created by Rajeev Gupta on 11/9/16.
//
// Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
// This source code is licensed under the BSD-style license found in the
// LICENSE file in the root directory of this source tree. An additional grant
// of patent rights can be found in the PATENTS file in the same directory.
// Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
// Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
// FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//

import UIKit
Expand All @@ -29,9 +32,6 @@ class ImageCellNode: ASCellNode {
}

override func layoutSpecThatFits(_ constrainedSize: ASSizeRange) -> ASLayoutSpec {
let imageSize = imageNode.image?.size
print("imageNode= \(imageNode.bounds), image=\(imageSize)")

var imageRatio: CGFloat = 0.5
if imageNode.image != nil {
imageRatio = (imageNode.image?.size.height)! / (imageNode.image?.size.width)!
Expand Down
2 changes: 0 additions & 2 deletions examples/CustomCollectionView-Swift/Sample/Info.plist
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,6 @@
<true/>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIMainStoryboardFile</key>
<string>Main</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
Expand Down
19 changes: 11 additions & 8 deletions examples/CustomCollectionView-Swift/Sample/MosaicCollectionViewLayout.swift
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,22 @@
// MosaicCollectionViewLayout
// Sample
//
// Created by Rajeev Gupta on 11/9/16.
//
// Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
// This source code is licensed under the BSD-style license found in the
// LICENSE file in the root directory of this source tree. An additional grant
// of patent rights can be found in the PATENTS file in the same directory.
// Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
// Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
// FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//

import Foundation
Expand Down
44 changes: 23 additions & 21 deletions examples/CustomCollectionView-Swift/Sample/ViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,37 +2,40 @@
// ViewController.swift
// Sample
//
// Created by Rajeev Gupta on 11/9/16.
//
// Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
// This source code is licensed under the BSD-style license found in the
// LICENSE file in the root directory of this source tree. An additional grant
// of patent rights can be found in the PATENTS file in the same directory.
// Modifications to this file made after 4/13/2017 are: Copyright (c) 2017-present,
// Pinterest, Inc. Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
// FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//

import UIKit
import AsyncDisplayKit

class ViewController: UIViewController, MosaicCollectionViewLayoutDelegate, ASCollectionDataSource, ASCollectionDelegate {
class ViewController: ASViewController<ASCollectionNode>, MosaicCollectionViewLayoutDelegate, ASCollectionDataSource, ASCollectionDelegate {

var _sections = [[UIImage]]()
let _collectionNode: ASCollectionNode!
let _collectionNode: ASCollectionNode
let _layoutInspector = MosaicCollectionViewLayoutInspector()
let kNumberOfImages: UInt = 14
required init?(coder aDecoder: NSCoder) {

init() {
let layout = MosaicCollectionViewLayout()
layout.numberOfColumns = 3;
layout.headerHeight = 44;
_collectionNode = ASCollectionNode(frame: CGRect.zero, collectionViewLayout: layout)
super.init(coder: aDecoder)
super.init(node: _collectionNode)
layout.delegate = self

_sections.append([]);
Expand All @@ -48,26 +51,25 @@ class ViewController: UIViewController, MosaicCollectionViewLayoutDelegate, ASCo

_collectionNode.dataSource = self;
_collectionNode.delegate = self;
_collectionNode.view.layoutInspector = _layoutInspector
_collectionNode.backgroundColor = UIColor.white
_collectionNode.view.isScrollEnabled = true
_collectionNode.registerSupplementaryNode(ofKind: UICollectionElementKindSectionHeader)
}

required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}

deinit {
_collectionNode.dataSource = nil;
_collectionNode.delegate = nil;
}

override func viewDidLoad() {
super.viewDidLoad()
self.view.addSubnode(_collectionNode!)
}

override func viewWillLayoutSubviews() {
_collectionNode.frame = self.view.bounds;
_collectionNode.view.layoutInspector = _layoutInspector
_collectionNode.view.isScrollEnabled = true
}

func collectionNode(_ collectionNode: ASCollectionNode, nodeForItemAt indexPath: IndexPath) -> ASCellNode {
let image = _sections[indexPath.section][indexPath.item]
return ImageCellNode(with: image)
Expand Down

0 comments on commit a4ddc07

Please sign in to comment.