From 2731add2bbe7d342127c4a279ef72023c98e64de Mon Sep 17 00:00:00 2001 From: David Robles Date: Mon, 22 Nov 2021 13:28:19 -0800 Subject: [PATCH 1/2] Add Github Actions and SwiftPM support for Objective-C version --- .github/workflows/CI.yml | 74 +++++++++++++++++++ .gitignore | 5 ++ .travis.yml | 5 -- CHTCollectionViewWaterfallLayout.podspec | 2 +- .../Demo.xcodeproj/project.pbxproj | 4 +- Package.swift | 12 ++- README.md | 3 +- 7 files changed, 95 insertions(+), 10 deletions(-) create mode 100644 .github/workflows/CI.yml delete mode 100644 .travis.yml diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml new file mode 100644 index 0000000..be4c6aa --- /dev/null +++ b/.github/workflows/CI.yml @@ -0,0 +1,74 @@ +name: "CHTCollectionViewWaterfallLayout CI" + +on: + push: + branches: + - develop + pull_request: + branches: + - '*' + +jobs: + Demo: + name: Demo Project (Latest Stable Xcode) + runs-on: macOS-11 + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Setup Xcode version + uses: maxim-lobanov/setup-xcode@v1.4.0 + with: + xcode-version: latest-stable + + - name: Build Swift Project + uses: sersoft-gmbh/xcodebuild-action@v1.8.0 + with: + project: Demo/Swift/CHTWaterfallSwiftDemo.xcodeproj + scheme: CHTWaterfallSwiftDemo + destination: name=iPhone 13 Pro + action: build + + - name: Build Objective-C Project + uses: sersoft-gmbh/xcodebuild-action@v1.8.0 + with: + project: Demo/Objective-C/Demo.xcodeproj + scheme: Demo + destination: name=iPhone 13 Pro + action: build + + Pods: + name: Cocoapods Lint (Latest Stable Xcode) + runs-on: macOS-11 + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Setup Xcode version + uses: maxim-lobanov/setup-xcode@v1.4.0 + with: + xcode-version: latest-stable + + - name: Run pod lib lint dynamic-framework + run: pod lib lint --fail-fast + + - name: Run pod lib lint static-framework + run: pod lib lint --fail-fast --use-libraries --use-modular-headers + + SwiftPM: + name: SwiftPM (Latest Stable Xcode) + runs-on: macOS-11 + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Setup Xcode version + uses: maxim-lobanov/setup-xcode@v1.4.0 + with: + xcode-version: latest-stable + + - name: Build Swift Version + run: xcodebuild -scheme CHTCollectionViewWaterfallLayout -destination generic/platform=iOS + + - name: Build ObjC Version + run: xcodebuild -scheme CHTCollectionViewWaterfallLayoutObjC -destination generic/platform=iOS diff --git a/.gitignore b/.gitignore index 76e4cca..906df3a 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,8 @@ DerivedData # Carthage Carthage/ + +# Swift Package Manager +.build/ +.swiftpm/ +Package.resolved diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index fc2648a..0000000 --- a/.travis.yml +++ /dev/null @@ -1,5 +0,0 @@ -language: objective-c -before_install: -- cd Demo/Objective-C -script: -- xctool -project Demo.xcodeproj -scheme Demo -sdk iphonesimulator diff --git a/CHTCollectionViewWaterfallLayout.podspec b/CHTCollectionViewWaterfallLayout.podspec index e90a15a..b181277 100644 --- a/CHTCollectionViewWaterfallLayout.podspec +++ b/CHTCollectionViewWaterfallLayout.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "CHTCollectionViewWaterfallLayout" - s.version = "0.9.8" + s.version = "0.9.9" s.summary = "The waterfall (i.e., Pinterest-like) layout for UICollectionView." s.homepage = "https://github.com/chiahsien/CHTCollectionViewWaterfallLayout" s.screenshots = "https://raw.github.com/chiahsien/UICollectionViewWaterfallLayout/master/Screenshots/2-columns.png" diff --git a/Demo/Objective-C/Demo.xcodeproj/project.pbxproj b/Demo/Objective-C/Demo.xcodeproj/project.pbxproj index dfce49f..f67b9ed 100644 --- a/Demo/Objective-C/Demo.xcodeproj/project.pbxproj +++ b/Demo/Objective-C/Demo.xcodeproj/project.pbxproj @@ -280,7 +280,7 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.1; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; @@ -302,7 +302,7 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; + IPHONEOS_DEPLOYMENT_TARGET = 8.1; OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/Package.swift b/Package.swift index ce1f4a2..86698c2 100644 --- a/Package.swift +++ b/Package.swift @@ -8,12 +8,22 @@ let package = Package( .tvOS(.v9) ], products: [ - .library(name: "CHTCollectionViewWaterfallLayout", targets: ["CHTCollectionViewWaterfallLayout"]) + .library(name: "CHTCollectionViewWaterfallLayout", targets: ["CHTCollectionViewWaterfallLayout"]), + .library(name: "CHTCollectionViewWaterfallLayoutObjC", targets: ["CHTCollectionViewWaterfallLayoutObjC"]) ], targets: [ .target( name: "CHTCollectionViewWaterfallLayout", path: "SwiftSources" + ), + .target( + name: "CHTCollectionViewWaterfallLayoutObjC", + path: ".", + sources: [ + "CHTCollectionViewWaterfallLayout.h", + "CHTCollectionViewWaterfallLayout.m" + ], + publicHeadersPath: "." ) ], swiftLanguageVersions: [.v5] diff --git a/README.md b/README.md index f258db8..4d7b472 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,10 @@ CHTCollectionViewWaterfallLayout ================================ [![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) +[![Swift Package Manager compatible](https://img.shields.io/badge/Swift%20Package%20Manager-compatible-brightgreen.svg)](https://github.com/apple/swift-package-manager) [![Version](https://cocoapod-badges.herokuapp.com/v/CHTCollectionViewWaterfallLayout/badge.png)](http://cocoadocs.org/docsets/CHTCollectionViewWaterfallLayout) [![Platform](https://cocoapod-badges.herokuapp.com/p/CHTCollectionViewWaterfallLayout/badge.png)](http://cocoadocs.org/docsets/CHTCollectionViewWaterfallLayout) -[![Build Status](https://travis-ci.org/chiahsien/CHTCollectionViewWaterfallLayout.svg?branch=develop)](https://travis-ci.org/chiahsien/CHTCollectionViewWaterfallLayout) +[![Build Status](https://github.com/chiahsien/CHTCollectionViewWaterfallLayout/workflows/CHTCollectionViewWaterfallLayout%20CI/badge.svg?branch=develop)](https://github.com/chiahsien/CHTCollectionViewWaterfallLayout/actions) **CHTCollectionViewWaterfallLayout** is a subclass of [UICollectionViewLayout], and it trys to imitate [UICollectionViewFlowLayout]'s usage as much as possible. From dea81609cbb5338919c96c4948dfa47b366fd412 Mon Sep 17 00:00:00 2001 From: Nelson Tai Date: Wed, 1 Dec 2021 23:38:39 +0800 Subject: [PATCH 2/2] Reorganize source file and update demo projects --- CHTCollectionViewWaterfallLayout.podspec | 12 +- .../project.pbxproj | 286 ------------------ .../CHTCollectionViewWaterfallLayout.xcscheme | 80 ----- .../Demo.xcodeproj/project.pbxproj | 57 +++- .../xcshareddata/xcschemes/Demo.xcscheme | 10 +- Demo/Objective-C/Demo/Demo-Info.plist | 2 + .../Objective-C/Demo/Launch Screen.storyboard | 40 +++ .../en.lproj/MainStoryboard_iPhone.storyboard | 26 +- .../project.pbxproj | 6 +- .../Base.lproj/LaunchScreen.xib | 32 +- .../ImageUICollectionViewCell.xib | 13 +- .../AppIcon.appiconset/Contents.json | 83 +++-- .../CHTWaterfallSwiftDemo/Main.storyboard | 28 +- .../ViewController.swift | 26 +- .../Info.plist => Info.plist | 0 Package.swift | 11 +- README.md | 16 +- .../CHTCollectionViewWaterfallLayout.h | 0 .../CHTCollectionViewWaterfallLayout.m | 0 .../CHTCollectionViewWaterfallLayout.swift | 0 20 files changed, 230 insertions(+), 498 deletions(-) delete mode 100644 CHTCollectionViewWaterfallLayout/CHTCollectionViewWaterfallLayout.xcodeproj/project.pbxproj delete mode 100644 CHTCollectionViewWaterfallLayout/CHTCollectionViewWaterfallLayout.xcodeproj/xcshareddata/xcschemes/CHTCollectionViewWaterfallLayout.xcscheme create mode 100644 Demo/Objective-C/Demo/Launch Screen.storyboard rename CHTCollectionViewWaterfallLayout/Info.plist => Info.plist (100%) rename CHTCollectionViewWaterfallLayout.h => Source/CHTCollectionViewWaterfallLayout.h (100%) rename CHTCollectionViewWaterfallLayout.m => Source/CHTCollectionViewWaterfallLayout.m (100%) rename {SwiftSources => Source}/CHTCollectionViewWaterfallLayout.swift (100%) diff --git a/CHTCollectionViewWaterfallLayout.podspec b/CHTCollectionViewWaterfallLayout.podspec index b181277..0571f53 100644 --- a/CHTCollectionViewWaterfallLayout.podspec +++ b/CHTCollectionViewWaterfallLayout.podspec @@ -9,19 +9,19 @@ Pod::Spec.new do |s| s.source = { :git => "https://github.com/chiahsien/CHTCollectionViewWaterfallLayout.git", :tag => "#{s.version}" } s.requires_arc = true - s.ios.deployment_target = '6.0' + s.ios.deployment_target = '9.0' s.tvos.deployment_target = '9.0' - s.default_subspec = 'ObjC' + s.default_subspec = 'Swift' s.subspec 'ObjC' do |ss| - ss.ios.deployment_target = '6.0' - ss.source_files = '*.{h,m}' + ss.ios.deployment_target = '9.0' + ss.source_files = 'Source/*.{h,m}' end s.swift_version = '4.2' s.subspec 'Swift' do |ss| - ss.ios.deployment_target = '8.0' - ss.source_files = 'SwiftSources/**/*' + ss.ios.deployment_target = '9.0' + ss.source_files = 'Source/*.swift' end end diff --git a/CHTCollectionViewWaterfallLayout/CHTCollectionViewWaterfallLayout.xcodeproj/project.pbxproj b/CHTCollectionViewWaterfallLayout/CHTCollectionViewWaterfallLayout.xcodeproj/project.pbxproj deleted file mode 100644 index 12199ca..0000000 --- a/CHTCollectionViewWaterfallLayout/CHTCollectionViewWaterfallLayout.xcodeproj/project.pbxproj +++ /dev/null @@ -1,286 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 0C2340CA1DC7E6000077FA16 /* CHTCollectionViewWaterfallLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 30CCE2141C9A8F7E00429C17 /* CHTCollectionViewWaterfallLayout.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 30CCE2171C9A8F7E00429C17 /* CHTCollectionViewWaterfallLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 30CCE2151C9A8F7E00429C17 /* CHTCollectionViewWaterfallLayout.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 0C37C5001DC8314900CA7DA8 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = SOURCE_ROOT; }; - 30CCE2091C9A8F7500429C17 /* CHTCollectionViewWaterfallLayout.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CHTCollectionViewWaterfallLayout.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 30CCE2141C9A8F7E00429C17 /* CHTCollectionViewWaterfallLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CHTCollectionViewWaterfallLayout.h; path = ../../CHTCollectionViewWaterfallLayout.h; sourceTree = ""; }; - 30CCE2151C9A8F7E00429C17 /* CHTCollectionViewWaterfallLayout.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CHTCollectionViewWaterfallLayout.m; path = ../../CHTCollectionViewWaterfallLayout.m; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 30CCE2051C9A8F7500429C17 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 30CCE1FF1C9A8F7500429C17 = { - isa = PBXGroup; - children = ( - 30CCE20B1C9A8F7500429C17 /* CHTCollectionViewWaterfallLayout */, - 30CCE20A1C9A8F7500429C17 /* Products */, - ); - sourceTree = ""; - }; - 30CCE20A1C9A8F7500429C17 /* Products */ = { - isa = PBXGroup; - children = ( - 30CCE2091C9A8F7500429C17 /* CHTCollectionViewWaterfallLayout.framework */, - ); - name = Products; - sourceTree = ""; - }; - 30CCE20B1C9A8F7500429C17 /* CHTCollectionViewWaterfallLayout */ = { - isa = PBXGroup; - children = ( - 30CCE2141C9A8F7E00429C17 /* CHTCollectionViewWaterfallLayout.h */, - 30CCE2151C9A8F7E00429C17 /* CHTCollectionViewWaterfallLayout.m */, - 0C37C5001DC8314900CA7DA8 /* Info.plist */, - ); - path = CHTCollectionViewWaterfallLayout; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 30CCE2061C9A8F7500429C17 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 0C2340CA1DC7E6000077FA16 /* CHTCollectionViewWaterfallLayout.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 30CCE2081C9A8F7500429C17 /* CHTCollectionViewWaterfallLayout */ = { - isa = PBXNativeTarget; - buildConfigurationList = 30CCE2111C9A8F7500429C17 /* Build configuration list for PBXNativeTarget "CHTCollectionViewWaterfallLayout" */; - buildPhases = ( - 30CCE2041C9A8F7500429C17 /* Sources */, - 30CCE2051C9A8F7500429C17 /* Frameworks */, - 30CCE2061C9A8F7500429C17 /* Headers */, - 30CCE2071C9A8F7500429C17 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = CHTCollectionViewWaterfallLayout; - productName = CHTCollectionViewWaterfallLayout; - productReference = 30CCE2091C9A8F7500429C17 /* CHTCollectionViewWaterfallLayout.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 30CCE2001C9A8F7500429C17 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0720; - TargetAttributes = { - 30CCE2081C9A8F7500429C17 = { - CreatedOnToolsVersion = 7.2.1; - }; - }; - }; - buildConfigurationList = 30CCE2031C9A8F7500429C17 /* Build configuration list for PBXProject "CHTCollectionViewWaterfallLayout" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = 30CCE1FF1C9A8F7500429C17; - productRefGroup = 30CCE20A1C9A8F7500429C17 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 30CCE2081C9A8F7500429C17 /* CHTCollectionViewWaterfallLayout */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 30CCE2071C9A8F7500429C17 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 30CCE2041C9A8F7500429C17 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 30CCE2171C9A8F7E00429C17 /* CHTCollectionViewWaterfallLayout.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 30CCE20F1C9A8F7500429C17 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.2; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 30CCE2101C9A8F7500429C17 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.2; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 30CCE2121C9A8F7500429C17 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "$(SRCROOT)/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.magnus.CHTCollectionViewWaterfallLayout; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 30CCE2131C9A8F7500429C17 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "$(SRCROOT)/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.magnus.CHTCollectionViewWaterfallLayout; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 30CCE2031C9A8F7500429C17 /* Build configuration list for PBXProject "CHTCollectionViewWaterfallLayout" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 30CCE20F1C9A8F7500429C17 /* Debug */, - 30CCE2101C9A8F7500429C17 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 30CCE2111C9A8F7500429C17 /* Build configuration list for PBXNativeTarget "CHTCollectionViewWaterfallLayout" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 30CCE2121C9A8F7500429C17 /* Debug */, - 30CCE2131C9A8F7500429C17 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 30CCE2001C9A8F7500429C17 /* Project object */; -} diff --git a/CHTCollectionViewWaterfallLayout/CHTCollectionViewWaterfallLayout.xcodeproj/xcshareddata/xcschemes/CHTCollectionViewWaterfallLayout.xcscheme b/CHTCollectionViewWaterfallLayout/CHTCollectionViewWaterfallLayout.xcodeproj/xcshareddata/xcschemes/CHTCollectionViewWaterfallLayout.xcscheme deleted file mode 100644 index b439d34..0000000 --- a/CHTCollectionViewWaterfallLayout/CHTCollectionViewWaterfallLayout.xcodeproj/xcshareddata/xcschemes/CHTCollectionViewWaterfallLayout.xcscheme +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Demo/Objective-C/Demo.xcodeproj/project.pbxproj b/Demo/Objective-C/Demo.xcodeproj/project.pbxproj index f67b9ed..cd8d74b 100644 --- a/Demo/Objective-C/Demo.xcodeproj/project.pbxproj +++ b/Demo/Objective-C/Demo.xcodeproj/project.pbxproj @@ -21,6 +21,7 @@ 526109DE16646F4D005E4B6E /* MainStoryboard_iPhone.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 526109DC16646F4D005E4B6E /* MainStoryboard_iPhone.storyboard */; }; 526109E416646F4D005E4B6E /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 526109E316646F4D005E4B6E /* ViewController.m */; }; 526109F31664740B005E4B6E /* CHTCollectionViewWaterfallCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 526109F21664740B005E4B6E /* CHTCollectionViewWaterfallCell.m */; }; + 529599F62757C93E00621B8A /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 529599F52757C93E00621B8A /* Launch Screen.storyboard */; }; 52FADF371CB64F5C0097FB12 /* CHTCollectionViewWaterfallLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 52FADF361CB64F5C0097FB12 /* CHTCollectionViewWaterfallLayout.m */; }; E5E7073B195E341500773FD3 /* cat1.jpg in Resources */ = {isa = PBXBuildFile; fileRef = E5E70737195E341500773FD3 /* cat1.jpg */; }; E5E7073C195E341500773FD3 /* cat2.jpg in Resources */ = {isa = PBXBuildFile; fileRef = E5E70738195E341500773FD3 /* cat2.jpg */; }; @@ -51,8 +52,9 @@ 526109E316646F4D005E4B6E /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = ""; }; 526109F11664740B005E4B6E /* CHTCollectionViewWaterfallCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CHTCollectionViewWaterfallCell.h; sourceTree = ""; }; 526109F21664740B005E4B6E /* CHTCollectionViewWaterfallCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CHTCollectionViewWaterfallCell.m; sourceTree = ""; }; - 52FADF351CB64F5C0097FB12 /* CHTCollectionViewWaterfallLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CHTCollectionViewWaterfallLayout.h; path = ../../../CHTCollectionViewWaterfallLayout.h; sourceTree = ""; }; - 52FADF361CB64F5C0097FB12 /* CHTCollectionViewWaterfallLayout.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CHTCollectionViewWaterfallLayout.m; path = ../../../CHTCollectionViewWaterfallLayout.m; sourceTree = ""; }; + 529599F52757C93E00621B8A /* Launch Screen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = "Launch Screen.storyboard"; sourceTree = ""; }; + 52FADF351CB64F5C0097FB12 /* CHTCollectionViewWaterfallLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CHTCollectionViewWaterfallLayout.h; path = ../../Source/CHTCollectionViewWaterfallLayout.h; sourceTree = SOURCE_ROOT; }; + 52FADF361CB64F5C0097FB12 /* CHTCollectionViewWaterfallLayout.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CHTCollectionViewWaterfallLayout.m; path = ../../Source/CHTCollectionViewWaterfallLayout.m; sourceTree = SOURCE_ROOT; }; E5E70737195E341500773FD3 /* cat1.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = cat1.jpg; sourceTree = ""; }; E5E70738195E341500773FD3 /* cat2.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = cat2.jpg; sourceTree = ""; }; E5E70739195E341500773FD3 /* cat3.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = cat3.jpg; sourceTree = ""; }; @@ -131,6 +133,7 @@ 526109D616646F4D005E4B6E /* Default.png */, 526109D816646F4D005E4B6E /* Default@2x.png */, 526109DA16646F4D005E4B6E /* Default-568h@2x.png */, + 529599F52757C93E00621B8A /* Launch Screen.storyboard */, ); name = "Supporting Files"; sourceTree = ""; @@ -181,7 +184,7 @@ 526109B716646F4D005E4B6E /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0730; + LastUpgradeCheck = 1250; ORGANIZATIONNAME = Nelson; }; buildConfigurationList = 526109BA16646F4D005E4B6E /* Build configuration list for PBXProject "Demo" */; @@ -189,6 +192,7 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, ); mainGroup = 526109B516646F4D005E4B6E; @@ -214,6 +218,7 @@ 526109D916646F4D005E4B6E /* Default@2x.png in Resources */, 526109DB16646F4D005E4B6E /* Default-568h@2x.png in Resources */, E5E7073B195E341500773FD3 /* cat1.jpg in Resources */, + 529599F62757C93E00621B8A /* Launch Screen.storyboard in Resources */, 526109DE16646F4D005E4B6E /* MainStoryboard_iPhone.storyboard in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -264,23 +269,44 @@ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", "$(inherited)", ); GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.1; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; @@ -294,15 +320,36 @@ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.1; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/Demo/Objective-C/Demo.xcodeproj/xcshareddata/xcschemes/Demo.xcscheme b/Demo/Objective-C/Demo.xcodeproj/xcshareddata/xcschemes/Demo.xcscheme index 5952fee..dddf7bf 100644 --- a/Demo/Objective-C/Demo.xcodeproj/xcshareddata/xcschemes/Demo.xcscheme +++ b/Demo/Objective-C/Demo.xcodeproj/xcshareddata/xcschemes/Demo.xcscheme @@ -1,6 +1,6 @@ - - - - + + - - 1.0 LSRequiresIPhoneOS + UILaunchStoryboardName + Launch Screen UIMainStoryboardFile MainStoryboard_iPhone UIMainStoryboardFile~ipad diff --git a/Demo/Objective-C/Demo/Launch Screen.storyboard b/Demo/Objective-C/Demo/Launch Screen.storyboard new file mode 100644 index 0000000..8e1ba1a --- /dev/null +++ b/Demo/Objective-C/Demo/Launch Screen.storyboard @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Demo/Objective-C/Demo/en.lproj/MainStoryboard_iPhone.storyboard b/Demo/Objective-C/Demo/en.lproj/MainStoryboard_iPhone.storyboard index f1a6f4e..9d134c4 100644 --- a/Demo/Objective-C/Demo/en.lproj/MainStoryboard_iPhone.storyboard +++ b/Demo/Objective-C/Demo/en.lproj/MainStoryboard_iPhone.storyboard @@ -1,28 +1,30 @@ - - + + + - - + + + + + + + - + - + + - - - - - - \ No newline at end of file + diff --git a/Demo/Swift/CHTWaterfallSwiftDemo.xcodeproj/project.pbxproj b/Demo/Swift/CHTWaterfallSwiftDemo.xcodeproj/project.pbxproj index 7d9ac17..cf9e906 100644 --- a/Demo/Swift/CHTWaterfallSwiftDemo.xcodeproj/project.pbxproj +++ b/Demo/Swift/CHTWaterfallSwiftDemo.xcodeproj/project.pbxproj @@ -19,7 +19,7 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - 52FADF3C1CB650DC0097FB12 /* CHTCollectionViewWaterfallLayout.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = CHTCollectionViewWaterfallLayout.swift; path = ../../../SwiftSources/CHTCollectionViewWaterfallLayout.swift; sourceTree = ""; }; + 52FADF3C1CB650DC0097FB12 /* CHTCollectionViewWaterfallLayout.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = CHTCollectionViewWaterfallLayout.swift; path = ../../Source/CHTCollectionViewWaterfallLayout.swift; sourceTree = SOURCE_ROOT; }; 62C26FD91ABE01840027F8D4 /* CHTWaterfallSwiftDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CHTWaterfallSwiftDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; 62C26FDD1ABE01840027F8D4 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 62C26FDE1ABE01840027F8D4 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; @@ -235,7 +235,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.1; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -284,7 +284,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.1; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SWIFT_COMPILATION_MODE = wholemodule; diff --git a/Demo/Swift/CHTWaterfallSwiftDemo/Base.lproj/LaunchScreen.xib b/Demo/Swift/CHTWaterfallSwiftDemo/Base.lproj/LaunchScreen.xib index 1d2b2cb..6510d24 100644 --- a/Demo/Swift/CHTWaterfallSwiftDemo/Base.lproj/LaunchScreen.xib +++ b/Demo/Swift/CHTWaterfallSwiftDemo/Base.lproj/LaunchScreen.xib @@ -1,8 +1,10 @@ - - + + + - - + + + @@ -11,26 +13,17 @@ - - + - + - - - @@ -38,4 +31,9 @@ + + + + + diff --git a/Demo/Swift/CHTWaterfallSwiftDemo/ImageUICollectionViewCell.xib b/Demo/Swift/CHTWaterfallSwiftDemo/ImageUICollectionViewCell.xib index cbcefc8..e87bdd8 100644 --- a/Demo/Swift/CHTWaterfallSwiftDemo/ImageUICollectionViewCell.xib +++ b/Demo/Swift/CHTWaterfallSwiftDemo/ImageUICollectionViewCell.xib @@ -1,22 +1,25 @@ - - + + + - + + + - + + - diff --git a/Demo/Swift/CHTWaterfallSwiftDemo/Images.xcassets/AppIcon.appiconset/Contents.json b/Demo/Swift/CHTWaterfallSwiftDemo/Images.xcassets/AppIcon.appiconset/Contents.json index eeea76c..9221b9b 100644 --- a/Demo/Swift/CHTWaterfallSwiftDemo/Images.xcassets/AppIcon.appiconset/Contents.json +++ b/Demo/Swift/CHTWaterfallSwiftDemo/Images.xcassets/AppIcon.appiconset/Contents.json @@ -2,72 +2,97 @@ "images" : [ { "idiom" : "iphone", - "size" : "29x29", - "scale" : "2x" + "scale" : "2x", + "size" : "20x20" }, { "idiom" : "iphone", - "size" : "29x29", - "scale" : "3x" + "scale" : "3x", + "size" : "20x20" }, { "idiom" : "iphone", - "size" : "40x40", - "scale" : "2x" + "scale" : "2x", + "size" : "29x29" }, { "idiom" : "iphone", - "size" : "40x40", - "scale" : "3x" + "scale" : "3x", + "size" : "29x29" }, { "idiom" : "iphone", - "size" : "60x60", - "scale" : "2x" + "scale" : "2x", + "size" : "40x40" }, { "idiom" : "iphone", - "size" : "60x60", - "scale" : "3x" + "scale" : "3x", + "size" : "40x40" + }, + { + "idiom" : "iphone", + "scale" : "2x", + "size" : "60x60" + }, + { + "idiom" : "iphone", + "scale" : "3x", + "size" : "60x60" + }, + { + "idiom" : "ipad", + "scale" : "1x", + "size" : "20x20" }, { "idiom" : "ipad", - "size" : "29x29", - "scale" : "1x" + "scale" : "2x", + "size" : "20x20" }, { "idiom" : "ipad", - "size" : "29x29", - "scale" : "2x" + "scale" : "1x", + "size" : "29x29" }, { "idiom" : "ipad", - "size" : "40x40", - "scale" : "1x" + "scale" : "2x", + "size" : "29x29" }, { "idiom" : "ipad", - "size" : "40x40", - "scale" : "2x" + "scale" : "1x", + "size" : "40x40" }, { "idiom" : "ipad", - "size" : "76x76", - "scale" : "1x" + "scale" : "2x", + "size" : "40x40" }, { "idiom" : "ipad", - "size" : "76x76", - "scale" : "2x" + "scale" : "1x", + "size" : "76x76" }, { "idiom" : "ipad", - "size" : "83.5x83.5", - "scale" : "2x" + "scale" : "2x", + "size" : "76x76" + }, + { + "idiom" : "ipad", + "scale" : "2x", + "size" : "83.5x83.5" + }, + { + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" } ], "info" : { - "version" : 1, - "author" : "xcode" + "author" : "xcode", + "version" : 1 } -} \ No newline at end of file +} diff --git a/Demo/Swift/CHTWaterfallSwiftDemo/Main.storyboard b/Demo/Swift/CHTWaterfallSwiftDemo/Main.storyboard index a385866..6cc1d89 100644 --- a/Demo/Swift/CHTWaterfallSwiftDemo/Main.storyboard +++ b/Demo/Swift/CHTWaterfallSwiftDemo/Main.storyboard @@ -1,25 +1,27 @@ - - + + + - - + + + - + - + - - + + @@ -33,12 +35,12 @@ - + - - - - + + + + diff --git a/Demo/Swift/CHTWaterfallSwiftDemo/ViewController.swift b/Demo/Swift/CHTWaterfallSwiftDemo/ViewController.swift index eb9539c..50ad668 100644 --- a/Demo/Swift/CHTWaterfallSwiftDemo/ViewController.swift +++ b/Demo/Swift/CHTWaterfallSwiftDemo/ViewController.swift @@ -13,16 +13,14 @@ class ViewController: UIViewController, UICollectionViewDelegate, UICollectionVi @IBOutlet weak var collectionView: UICollectionView! let model = Model() - //MARK: - View Controller Lifecycle override func viewDidLoad() { super.viewDidLoad() model.buildDataSource() - // Attach datasource and delegate - collectionView.dataSource = self + collectionView.dataSource = self collectionView.delegate = self //Layout setup @@ -31,12 +29,7 @@ class ViewController: UIViewController, UICollectionViewDelegate, UICollectionVi //Register nibs registerNibs() } - - override func didReceiveMemoryWarning() { - super.didReceiveMemoryWarning() - // Dispose of any resources that can be recreated. - } - + //MARK: - CollectionView UI Setup func setupCollectionView(){ @@ -44,11 +37,10 @@ class ViewController: UIViewController, UICollectionViewDelegate, UICollectionVi let layout = CHTCollectionViewWaterfallLayout() // Change individual layout attributes for the spacing between cells - layout.minimumColumnSpacing = 1.0 - layout.minimumInteritemSpacing = 1.0 + layout.minimumColumnSpacing = 5.0 + layout.minimumInteritemSpacing = 5.0 // Collection view attributes - collectionView.autoresizingMask = [.flexibleHeight, .flexibleWidth] collectionView.alwaysBounceVertical = true // Add the waterfall layout to your collection view @@ -62,10 +54,7 @@ class ViewController: UIViewController, UICollectionViewDelegate, UICollectionVi let viewNib = UINib(nibName: "ImageUICollectionViewCell", bundle: nil) collectionView.register(viewNib, forCellWithReuseIdentifier: "cell") } - - - - + //MARK: - CollectionView Delegate Methods //** Number of Cells in the CollectionView */ @@ -81,7 +70,7 @@ class ViewController: UIViewController, UICollectionViewDelegate, UICollectionVi let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! ImageUICollectionViewCell // Add image to cell - cell.image.image = model.images[indexPath.row] + cell.image.image = model.images[indexPath.item] return cell } @@ -91,9 +80,8 @@ class ViewController: UIViewController, UICollectionViewDelegate, UICollectionVi //** Size for the cells in the Waterfall Layout */ func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { // create a cell size from the image size, and return the size - let imageSize = model.images[indexPath.row].size + let imageSize = model.images[indexPath.item].size return imageSize } } - diff --git a/CHTCollectionViewWaterfallLayout/Info.plist b/Info.plist similarity index 100% rename from CHTCollectionViewWaterfallLayout/Info.plist rename to Info.plist diff --git a/Package.swift b/Package.swift index 86698c2..ad72232 100644 --- a/Package.swift +++ b/Package.swift @@ -4,7 +4,7 @@ import PackageDescription let package = Package( name: "CHTCollectionViewWaterfallLayout", platforms: [ - .iOS(.v8), + .iOS(.v9), .tvOS(.v9) ], products: [ @@ -14,16 +14,19 @@ let package = Package( targets: [ .target( name: "CHTCollectionViewWaterfallLayout", - path: "SwiftSources" + path: "Source", + sources: [ + "CHTCollectionViewWaterfallLayout.swift" + ] ), .target( name: "CHTCollectionViewWaterfallLayoutObjC", - path: ".", + path: "Source", sources: [ "CHTCollectionViewWaterfallLayout.h", "CHTCollectionViewWaterfallLayout.m" ], - publicHeadersPath: "." + publicHeadersPath: "Source" ) ], swiftLanguageVersions: [.v5] diff --git a/README.md b/README.md index 4d7b472..68a2c46 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ CHTCollectionViewWaterfallLayout **CHTCollectionViewWaterfallLayout** is a subclass of [UICollectionViewLayout], and it trys to imitate [UICollectionViewFlowLayout]'s usage as much as possible. -This layout is inspired by [Pinterest]. It also is compatible with [PSTCollectionView]. +This layout is inspired by [Pinterest]. Screen Shots ------------ @@ -25,14 +25,14 @@ Features Requirements ------------ -* iOS 8+ / tvOS 9+ +* iOS 9+ / tvOS 9+ * Objective-C or Swift 4.2 How to install -------------- * [CocoaPods] - Add `pod 'CHTCollectionViewWaterfallLayout'` to your Podfile. - - If you prefer Swift, `pod 'CHTCollectionViewWaterfallLayout/Swift'` is ready for you. + - If you prefer Objective-C, `pod 'CHTCollectionViewWaterfallLayout/ObjC'` is ready for you. * [Carthage] - Add `github chiahsien/CHTCollectionViewWaterfallLayout` to your Cartfile. @@ -41,7 +41,7 @@ How to install - Add it to the `dependencies` value of your `Package.swift`. ``` dependencies: [ - .package(url: "https://github.com/chiahsien/CHTCollectionViewWaterfallLayout.git", from: "0.9.8") + .package(url: "https://github.com/chiahsien/CHTCollectionViewWaterfallLayout.git", from: "0.9.9") ] ``` @@ -73,13 +73,6 @@ Your collection view's delegate (which often is your view controller) must confo - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath; ``` -#### Step 3 (Optional) -If you need to support iOS 4.x/5.x and you have installed [PSTCollectionView], then you **NEED** to modify some codes. - -Quoted from [PSTCollectionView] README file: -> **If you want to have PSTCollectionView on iOS4.3/5.x and UICollectionView on iOS6, use PSUICollectionView (basically add PS on any UICollectionView* class to get auto-support for older iOS versions)** -> If you always want to use PSTCollectionView, use PSTCollectionView as class names. (replace the UI with PST) - Limitation ---------- * Only vertical scrolling is supported. @@ -117,7 +110,6 @@ Refer to the [Releases page](https://github.com/chiahsien/CHTCollectionViewWater [UICollectionViewLayout]: http://developer.apple.com/library/ios/#documentation/uikit/reference/UICollectionViewLayout_class/Reference/Reference.html [UICollectionViewFlowLayout]: https://developer.apple.com/library/ios/documentation/uikit/reference/UICollectionViewFlowLayout_class/Reference/Reference.html [Pinterest]: http://pinterest.com/ -[PSTCollectionView]: https://github.com/steipete/PSTCollectionView [CocoaPods]: http://cocoapods.org/ [Carthage]: https://github.com/Carthage/Carthage [Swift Package Manager]: https://swift.org/package-manager/ diff --git a/CHTCollectionViewWaterfallLayout.h b/Source/CHTCollectionViewWaterfallLayout.h similarity index 100% rename from CHTCollectionViewWaterfallLayout.h rename to Source/CHTCollectionViewWaterfallLayout.h diff --git a/CHTCollectionViewWaterfallLayout.m b/Source/CHTCollectionViewWaterfallLayout.m similarity index 100% rename from CHTCollectionViewWaterfallLayout.m rename to Source/CHTCollectionViewWaterfallLayout.m diff --git a/SwiftSources/CHTCollectionViewWaterfallLayout.swift b/Source/CHTCollectionViewWaterfallLayout.swift similarity index 100% rename from SwiftSources/CHTCollectionViewWaterfallLayout.swift rename to Source/CHTCollectionViewWaterfallLayout.swift