├── .swift-version ├── _Pods.xcodeproj ├── HorizontalParallaxScrollView ├── Assets │ └── .gitkeep └── Classes │ ├── .gitkeep │ ├── HorizontalParallaxScrollViewItem.swift │ └── HorizontalParallaxScrollView.swift ├── .gitignore ├── Example ├── Pods │ ├── Target Support Files │ │ ├── HorizontalParallaxScrollView │ │ │ ├── HorizontalParallaxScrollView.modulemap │ │ │ ├── HorizontalParallaxScrollView-dummy.m │ │ │ ├── HorizontalParallaxScrollView-prefix.pch │ │ │ ├── HorizontalParallaxScrollView-umbrella.h │ │ │ └── HorizontalParallaxScrollView.xcconfig │ │ ├── Pods-HorizontalParallaxScrollView_Tests │ │ │ ├── Pods-HorizontalParallaxScrollView_Tests-acknowledgements.markdown │ │ │ ├── Pods-HorizontalParallaxScrollView_Tests.modulemap │ │ │ ├── Pods-HorizontalParallaxScrollView_Tests-dummy.m │ │ │ ├── Pods-HorizontalParallaxScrollView_Tests-umbrella.h │ │ │ ├── Pods-HorizontalParallaxScrollView_Tests.debug.xcconfig │ │ │ ├── Pods-HorizontalParallaxScrollView_Tests.release.xcconfig │ │ │ ├── Pods-HorizontalParallaxScrollView_Tests-resources.sh │ │ │ └── Pods-HorizontalParallaxScrollView_Tests-frameworks.sh │ │ └── Pods-HorizontalParallaxScrollView_Example │ │ │ ├── Pods-HorizontalParallaxScrollView_Example.modulemap │ │ │ ├── Pods-HorizontalParallaxScrollView_Example-dummy.m │ │ │ ├── Pods-HorizontalParallaxScrollView_Example-umbrella.h │ │ │ ├── Pods-HorizontalParallaxScrollView_Example.debug.xcconfig │ │ │ ├── Pods-HorizontalParallaxScrollView_Example.release.xcconfig │ │ │ ├── Pods-HorizontalParallaxScrollView_Example-acknowledgements.markdown │ │ │ ├── Pods-HorizontalParallaxScrollView_Example-resources.sh │ │ │ └── Pods-HorizontalParallaxScrollView_Example-frameworks.sh │ ├── Manifest.lock │ ├── Local Podspecs │ │ └── HorizontalParallaxScrollView.podspec.json │ └── Pods.xcodeproj │ │ └── project.pbxproj ├── Podfile ├── HorizontalParallaxScrollView.xcodeproj │ ├── project.xcworkspace │ │ └── contents.xcworkspacedata │ ├── xcshareddata │ │ └── xcschemes │ │ │ └── HorizontalParallaxScrollView-Example.xcscheme │ └── project.pbxproj ├── HorizontalParallaxScrollView.xcworkspace │ └── contents.xcworkspacedata ├── Podfile.lock ├── HorizontalParallaxScrollView │ ├── AppDelegate.swift │ ├── Images.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Base.lproj │ │ ├── Main.storyboard │ │ └── LaunchScreen.xib │ └── ViewController.swift └── Tests │ └── Tests.swift ├── LICENSE ├── HorizontalParallaxScrollView.podspec └── README.md /.swift-version: -------------------------------------------------------------------------------- 1 | 3.0 2 | -------------------------------------------------------------------------------- /_Pods.xcodeproj: -------------------------------------------------------------------------------- 1 | Example/Pods/Pods.xcodeproj -------------------------------------------------------------------------------- /HorizontalParallaxScrollView/Assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /HorizontalParallaxScrollView/Classes/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | xcuserdata 2 | xcuserdata/* 3 | */xcuserdata/* 4 | *.xcuserstate -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/HorizontalParallaxScrollView/HorizontalParallaxScrollView.modulemap: -------------------------------------------------------------------------------- 1 | framework module HorizontalParallaxScrollView { 2 | umbrella header "HorizontalParallaxScrollView-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Example/Podfile: -------------------------------------------------------------------------------- 1 | use_frameworks! 2 | 3 | target 'HorizontalParallaxScrollView_Example' do 4 | pod 'HorizontalParallaxScrollView', :path => '../' 5 | 6 | target 'HorizontalParallaxScrollView_Tests' do 7 | inherit! :search_paths 8 | 9 | 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/HorizontalParallaxScrollView/HorizontalParallaxScrollView-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_HorizontalParallaxScrollView : NSObject 3 | @end 4 | @implementation PodsDummy_HorizontalParallaxScrollView 5 | @end 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-HorizontalParallaxScrollView_Tests/Pods-HorizontalParallaxScrollView_Tests-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | Generated by CocoaPods - https://cocoapods.org 4 | -------------------------------------------------------------------------------- /Example/HorizontalParallaxScrollView.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-HorizontalParallaxScrollView_Tests/Pods-HorizontalParallaxScrollView_Tests.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_HorizontalParallaxScrollView_Tests { 2 | umbrella header "Pods-HorizontalParallaxScrollView_Tests-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-HorizontalParallaxScrollView_Example/Pods-HorizontalParallaxScrollView_Example.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_HorizontalParallaxScrollView_Example { 2 | umbrella header "Pods-HorizontalParallaxScrollView_Example-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-HorizontalParallaxScrollView_Tests/Pods-HorizontalParallaxScrollView_Tests-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_HorizontalParallaxScrollView_Tests : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_HorizontalParallaxScrollView_Tests 5 | @end 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-HorizontalParallaxScrollView_Example/Pods-HorizontalParallaxScrollView_Example-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_HorizontalParallaxScrollView_Example : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_HorizontalParallaxScrollView_Example 5 | @end 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/HorizontalParallaxScrollView/HorizontalParallaxScrollView-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Example/HorizontalParallaxScrollView.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Example/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - HorizontalParallaxScrollView (0.1.0) 3 | 4 | DEPENDENCIES: 5 | - HorizontalParallaxScrollView (from `../`) 6 | 7 | EXTERNAL SOURCES: 8 | HorizontalParallaxScrollView: 9 | :path: "../" 10 | 11 | SPEC CHECKSUMS: 12 | HorizontalParallaxScrollView: e378e3e1cd7cc510be811a0138bfe8f6bb203dbd 13 | 14 | PODFILE CHECKSUM: a098e17a728f97785d469ff928611a966ff1a7b1 15 | 16 | COCOAPODS: 1.5.3 17 | -------------------------------------------------------------------------------- /Example/Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - HorizontalParallaxScrollView (0.1.0) 3 | 4 | DEPENDENCIES: 5 | - HorizontalParallaxScrollView (from `../`) 6 | 7 | EXTERNAL SOURCES: 8 | HorizontalParallaxScrollView: 9 | :path: "../" 10 | 11 | SPEC CHECKSUMS: 12 | HorizontalParallaxScrollView: e378e3e1cd7cc510be811a0138bfe8f6bb203dbd 13 | 14 | PODFILE CHECKSUM: a098e17a728f97785d469ff928611a966ff1a7b1 15 | 16 | COCOAPODS: 1.5.3 17 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/HorizontalParallaxScrollView/HorizontalParallaxScrollView-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double HorizontalParallaxScrollViewVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char HorizontalParallaxScrollViewVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-HorizontalParallaxScrollView_Tests/Pods-HorizontalParallaxScrollView_Tests-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_HorizontalParallaxScrollView_TestsVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_HorizontalParallaxScrollView_TestsVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-HorizontalParallaxScrollView_Example/Pods-HorizontalParallaxScrollView_Example-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_HorizontalParallaxScrollView_ExampleVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_HorizontalParallaxScrollView_ExampleVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Example/HorizontalParallaxScrollView/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // HorizontalParallaxScrollView 4 | // 5 | // Created by syjdev on 11/10/2018. 6 | // Copyright (c) 2018 syjdev. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | var window: UIWindow? 14 | 15 | 16 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 17 | return true 18 | } 19 | } 20 | 21 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/HorizontalParallaxScrollView/HorizontalParallaxScrollView.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/HorizontalParallaxScrollView 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/../.. 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-HorizontalParallaxScrollView_Tests/Pods-HorizontalParallaxScrollView_Tests.debug.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/HorizontalParallaxScrollView" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 4 | OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/HorizontalParallaxScrollView/HorizontalParallaxScrollView.framework/Headers" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 8 | PODS_ROOT = ${SRCROOT}/Pods 9 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-HorizontalParallaxScrollView_Tests/Pods-HorizontalParallaxScrollView_Tests.release.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/HorizontalParallaxScrollView" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 4 | OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/HorizontalParallaxScrollView/HorizontalParallaxScrollView.framework/Headers" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 8 | PODS_ROOT = ${SRCROOT}/Pods 9 | -------------------------------------------------------------------------------- /Example/Pods/Local Podspecs/HorizontalParallaxScrollView.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "HorizontalParallaxScrollView", 3 | "version": "0.1.0", 4 | "summary": "A short description of HorizontalParallaxScrollView.", 5 | "description": "TODO: Add long description of the pod here.", 6 | "homepage": "https://github.com/syjdev/HorizontalParallaxScrollView", 7 | "license": { 8 | "type": "MIT", 9 | "file": "LICENSE" 10 | }, 11 | "authors": { 12 | "syjdev": "syjdev@gmail.com" 13 | }, 14 | "source": { 15 | "git": "https://github.com/syjdev/HorizontalParallaxScrollView.git", 16 | "tag": "0.1.0" 17 | }, 18 | "platforms": { 19 | "ios": "8.0" 20 | }, 21 | "source_files": "HorizontalParallaxScrollView/Classes/**/*" 22 | } 23 | -------------------------------------------------------------------------------- /Example/Tests/Tests.swift: -------------------------------------------------------------------------------- 1 | import XCTest 2 | import HorizontalParallaxScrollView 3 | 4 | class Tests: XCTestCase { 5 | 6 | override func setUp() { 7 | super.setUp() 8 | // Put setup code here. This method is called before the invocation of each test method in the class. 9 | } 10 | 11 | override func tearDown() { 12 | // Put teardown code here. This method is called after the invocation of each test method in the class. 13 | super.tearDown() 14 | } 15 | 16 | func testExample() { 17 | // This is an example of a functional test case. 18 | XCTAssert(true, "Pass") 19 | } 20 | 21 | func testPerformanceExample() { 22 | // This is an example of a performance test case. 23 | self.measure() { 24 | // Put the code you want to measure the time of here. 25 | } 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-HorizontalParallaxScrollView_Example/Pods-HorizontalParallaxScrollView_Example.debug.xcconfig: -------------------------------------------------------------------------------- 1 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/HorizontalParallaxScrollView" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 5 | OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/HorizontalParallaxScrollView/HorizontalParallaxScrollView.framework/Headers" 6 | OTHER_LDFLAGS = $(inherited) -framework "HorizontalParallaxScrollView" 7 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 8 | PODS_BUILD_DIR = ${BUILD_DIR} 9 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 10 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 11 | PODS_ROOT = ${SRCROOT}/Pods 12 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-HorizontalParallaxScrollView_Example/Pods-HorizontalParallaxScrollView_Example.release.xcconfig: -------------------------------------------------------------------------------- 1 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/HorizontalParallaxScrollView" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 5 | OTHER_CFLAGS = $(inherited) -iquote "${PODS_CONFIGURATION_BUILD_DIR}/HorizontalParallaxScrollView/HorizontalParallaxScrollView.framework/Headers" 6 | OTHER_LDFLAGS = $(inherited) -framework "HorizontalParallaxScrollView" 7 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 8 | PODS_BUILD_DIR = ${BUILD_DIR} 9 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 10 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 11 | PODS_ROOT = ${SRCROOT}/Pods 12 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2018 syjdev 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /Example/HorizontalParallaxScrollView/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "20x20", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "20x20", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "29x29", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "29x29", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "40x40", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "40x40", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "size" : "60x60", 36 | "scale" : "2x" 37 | }, 38 | { 39 | "idiom" : "iphone", 40 | "size" : "60x60", 41 | "scale" : "3x" 42 | }, 43 | { 44 | "idiom" : "ios-marketing", 45 | "size" : "1024x1024", 46 | "scale" : "1x" 47 | } 48 | ], 49 | "info" : { 50 | "version" : 1, 51 | "author" : "xcode" 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /HorizontalParallaxScrollView/Classes/HorizontalParallaxScrollViewItem.swift: -------------------------------------------------------------------------------- 1 | // 2 | // HorizontalParallaxScrollViewItem.swift 3 | // HorizontalParallaxScrollView 4 | // 5 | // Created by syjdev on 13/10/2018. 6 | // 7 | 8 | import UIKit 9 | 10 | 11 | public enum ParallaxAcceleration { 12 | case invariable(CGPoint) 13 | case variable(((_ parallaxScrollView: HorizontalParallaxScrollView, _ view: UIView) -> CGPoint)) 14 | } 15 | 16 | 17 | public struct HorizontalParallaxScrollViewItem { 18 | let view: UIView 19 | let originOffset: CGPoint 20 | let acceleration: ParallaxAcceleration 21 | let progress: ((_ parallaxScrollView: HorizontalParallaxScrollView, _ view: UIView) -> Void) 22 | 23 | public init(view: UIView, 24 | originOffset: CGPoint = CGPoint.zero, 25 | acceleration: ParallaxAcceleration, 26 | progress: @escaping ((_ parallaxScrollView: HorizontalParallaxScrollView, _ view: UIView) -> Void) = { _ ,_ in }) { 27 | self.view = view 28 | self.originOffset = originOffset 29 | self.acceleration = acceleration 30 | self.progress = progress 31 | } 32 | } 33 | 34 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-HorizontalParallaxScrollView_Example/Pods-HorizontalParallaxScrollView_Example-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | 4 | ## HorizontalParallaxScrollView 5 | 6 | Copyright (c) 2018 syjdev 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a copy 9 | of this software and associated documentation files (the "Software"), to deal 10 | in the Software without restriction, including without limitation the rights 11 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | copies of the Software, and to permit persons to whom the Software is 13 | furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included in 16 | all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 24 | THE SOFTWARE. 25 | 26 | Generated by CocoaPods - https://cocoapods.org 27 | -------------------------------------------------------------------------------- /HorizontalParallaxScrollView.podspec: -------------------------------------------------------------------------------- 1 | # 2 | # Be sure to run `pod lib lint HorizontalParallaxScrollView.podspec' to ensure this is a 3 | # valid spec before submitting. 4 | # 5 | # Any lines starting with a # are optional, but their use is encouraged 6 | # To learn more about a Podspec see https://guides.cocoapods.org/syntax/podspec.html 7 | # 8 | 9 | Pod::Spec.new do |s| 10 | s.name = 'HorizontalParallaxScrollView' 11 | s.version = '0.2.3' 12 | s.summary = 'Helpful UI Component for configure Horizontal Parallax Effect.' 13 | 14 | # This description is used to generate tags and improve search results. 15 | # * Think: What does it do? Why did you write it? What is the focus? 16 | # * Try to keep it short, snappy and to the point. 17 | # * Write the description between the DESC delimiters below. 18 | # * Finally, don't worry about the indent, CocoaPods strips it! 19 | 20 | s.description = 'Using HorizontalParallaxScrollView is an one of wonderful way that configure Horizontal Parallax UI. I will welcome your feedback.' 21 | 22 | s.homepage = 'https://github.com/syjdev/HorizontalParallaxScrollView' 23 | s.license = { :type => 'MIT', :file => 'LICENSE' } 24 | s.author = { 'syjdev' => 'syjdev@gmail.com' } 25 | s.source = { :git => 'https://github.com/syjdev/HorizontalParallaxScrollView.git', :tag => s.version.to_s } 26 | # s.social_media_url = 'https://twitter.com/' 27 | 28 | s.source_files = 'HorizontalParallaxScrollView/Classes/*' 29 | s.ios.deployment_target = '8.0' 30 | 31 | 32 | 33 | # s.resource_bundles = { 34 | # 'HorizontalParallaxScrollView' => ['HorizontalParallaxScrollView/Assets/*.png'] 35 | # } 36 | 37 | # s.public_header_files = 'Pod/Classes/**/*.h' 38 | # s.frameworks = 'UIKit', 'MapKit' 39 | # s.dependency 'AFNetworking', '~> 2.3' 40 | end 41 | -------------------------------------------------------------------------------- /Example/HorizontalParallaxScrollView/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /Example/HorizontalParallaxScrollView/Base.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # HorizontalParallaxScrollView 2 | 3 | [![Version](https://img.shields.io/cocoapods/v/HorizontalParallaxScrollView.svg?style=flat)](http://cocoapods.org/pods/HorizontalParallaxScrollView) 4 | [![License](https://img.shields.io/cocoapods/l/HorizontalParallaxScrollView.svg?style=flat)](http://cocoapods.org/pods/HorizontalParallaxScrollView) 5 | [![Platform](https://img.shields.io/cocoapods/p/HorizontalParallaxScrollView.svg?style=flat)](http://cocoapods.org/pods/HorizontalParallaxScrollView) 6 | 7 | ![Demo Animation](https://imgur.com/kOxmsHr.gif "Demo") 8 | 9 | You can see above demo project code. 10 | [demo project code](https://github.com/syjdev/HorizontalParallaxScrollView/tree/master/Example) 11 | 12 | 13 | ## Usage 14 | 15 | - First, You have to define `HorizontalParallaxScrollView` object. 16 | 17 | ```swift 18 | let view = UIView(frame: CGRect(x: ?, y: ?, width: ?, height: ?)) 19 | let item = HorizontalParallaxScrollViewItem(view: view, 20 | originOffset: CGPoint(x: 150, y: 80), 21 | acceleration: ParallaxAcceleration.invariable(CGPoint(x: 1, y: 1)), 22 | progress: { (parallaxView, view) in 23 | //... 24 | }) 25 | ``` 26 | 27 | If you want, You can define a dynamic acceleration. 28 | 29 | ```swift 30 | let dynamicAcceleration = ParallaxAcceleration.variable { (parallaxView, view) -> CGPoint in 31 | let progressRatio = (parallaxView.contentSize.width - 3 * parallaxView.contentOffset.x) / parallaxView.contentSize.width 32 | return CGPoint(x: 0.65 * progressRatio, y: 0.65 * (1 - progressRatio)) 33 | } 34 | 35 | let view = UIView(frame: CGRect(x: ?, y: ?, width: ?, height: ?)) 36 | let item = HorizontalParallaxScrollViewItem(view: view, 37 | originOffset: CGPoint(x: 150, y: 80), 38 | acceleration: dynamicAcceleration, 39 | progress: { (parallaxView, view) in 40 | //... 41 | }) 42 | ``` 43 | 44 | - Second, Build a parallaxView. 45 | 46 | ```swift 47 | let parallaxView = HorizontalParallaxScrollViewBuilder.setOption { (option) in 48 | option.frame = CGRect(x: 0, y: 100, width: view.frame.size.width, height: view.frame.size.height - 100) 49 | option.parallaxViewItems = [item] // You can add more items. 50 | option.isPagingEnabled = false 51 | }.build() 52 | parallaxView.delegate = self //Optional 53 | ``` 54 | 55 | ## Requirements 56 | 57 | ```ruby 58 | Minimum iOS Target : iOS 8.0 59 | ``` 60 | 61 | ## Installation 62 | 63 | HorizontalParallaxScrollView is available through [CocoaPods](http://cocoapods.org). To install 64 | it, simply add the following line to your Podfile: 65 | 66 | ```ruby 67 | pod 'HorizontalParallaxScrollView' 68 | ``` 69 | 70 | ## History 71 | 72 | - Change Repository & Pod name(SYParallaxScrollView -> HorizontalParallaxScrollView). 73 | 74 | ## Author 75 | 76 | syjdev@gmail.com 77 | 78 | ## License 79 | 80 | HorizontalParallaxScrollView is available under the MIT license. 81 | -------------------------------------------------------------------------------- /Example/HorizontalParallaxScrollView.xcodeproj/xcshareddata/xcschemes/HorizontalParallaxScrollView-Example.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 29 | 35 | 36 | 37 | 38 | 39 | 45 | 46 | 48 | 54 | 55 | 56 | 57 | 58 | 64 | 65 | 66 | 67 | 68 | 69 | 80 | 82 | 88 | 89 | 90 | 91 | 92 | 93 | 99 | 101 | 107 | 108 | 109 | 110 | 112 | 113 | 116 | 117 | 118 | -------------------------------------------------------------------------------- /HorizontalParallaxScrollView/Classes/HorizontalParallaxScrollView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // HorizontalParallaxScrollView.swift 3 | // HorizontalParallaxScrollView 4 | // 5 | // Created by syjdev on 13/10/2018. 6 | // 7 | 8 | import UIKit 9 | 10 | 11 | @objc 12 | public class HorizontalParallaxScrollViewBuilder: NSObject { 13 | private let parallaxScrollViewOption: HorizontalParallaxScrollViewOption 14 | 15 | 16 | private init(parallaxScrollViewOption: HorizontalParallaxScrollViewOption) { 17 | self.parallaxScrollViewOption = parallaxScrollViewOption 18 | super.init() 19 | } 20 | 21 | public class func setOption(_ closure: ((inout HorizontalParallaxScrollViewOption) -> Void)) -> HorizontalParallaxScrollViewBuilder { 22 | var option = HorizontalParallaxScrollViewOption() 23 | closure(&option) 24 | return HorizontalParallaxScrollViewBuilder(parallaxScrollViewOption: option) 25 | } 26 | 27 | public func build() -> HorizontalParallaxScrollView { 28 | return HorizontalParallaxScrollView(option: parallaxScrollViewOption) 29 | } 30 | } 31 | 32 | 33 | public struct HorizontalParallaxScrollViewOption { 34 | public var parallaxViewItems: Array? = nil 35 | public var frame: CGRect = CGRect.zero 36 | public var isPagingEnabled: Bool = false 37 | public var contentWidth: CGFloat = 0 38 | } 39 | 40 | 41 | @objc 42 | public protocol HorizontalParallaxScrollViewDelegate { 43 | @objc optional func parallaxScrollViewWillBeginDragging(_ parallaxScrollView: HorizontalParallaxScrollView) 44 | @objc optional func parallaxScrollViewDidEndDragging(_ parallaxScrollView: HorizontalParallaxScrollView, willDecelerate decelerate: Bool) 45 | @objc optional func parallaxScrollViewDidScroll(_ parallaxScrollView: HorizontalParallaxScrollView) 46 | @objc optional func parallaxScrollViewWillBeginDecelerating(_ parallaxScrollView: HorizontalParallaxScrollView) 47 | @objc optional func parallaxScrollViewDidEndDecelerating(_ scrollView: HorizontalParallaxScrollView) 48 | } 49 | 50 | 51 | @objc 52 | public class HorizontalParallaxScrollView : UIView, UIScrollViewDelegate { 53 | private let parallaxViewItems: Array 54 | private let internalScrollView = UIScrollView() 55 | 56 | public var delegate: HorizontalParallaxScrollViewDelegate? 57 | public var contentOffset: CGPoint { return internalScrollView.contentOffset } 58 | public var contentSize: CGSize { return internalScrollView.contentSize } 59 | 60 | 61 | fileprivate init(option: HorizontalParallaxScrollViewOption) { 62 | if let parallaxViewItems = option.parallaxViewItems { 63 | self.parallaxViewItems = parallaxViewItems 64 | } else { 65 | self.parallaxViewItems = Array() 66 | } 67 | 68 | super.init(frame: option.frame) 69 | 70 | internalScrollView.contentSize = CGSize(width: option.contentWidth, height: option.frame.size.height) 71 | internalScrollView.delegate = self 72 | internalScrollView.showsHorizontalScrollIndicator = false 73 | internalScrollView.showsVerticalScrollIndicator = false 74 | internalScrollView.isPagingEnabled = option.isPagingEnabled 75 | 76 | setupViews() 77 | } 78 | 79 | 80 | required public init?(coder aDecoder: NSCoder) { 81 | fatalError("init(coder:) has not allowed") 82 | } 83 | 84 | 85 | private func setupViews() { 86 | internalScrollView.frame = frame 87 | addSubview(internalScrollView) 88 | 89 | var maxX: CGFloat = 0 90 | for parallaxScrollViewItem in parallaxViewItems { 91 | parallaxScrollViewItem.view.frame.origin = parallaxScrollViewItem.originOffset 92 | if maxX < parallaxScrollViewItem.view.frame.maxX { 93 | maxX = parallaxScrollViewItem.view.frame.maxX 94 | } 95 | internalScrollView.addSubview(parallaxScrollViewItem.view) 96 | } 97 | 98 | if internalScrollView.contentSize == CGSize.zero { 99 | #if DEBUG 100 | print("HorizontalParallaxScrollViewOption's contentWidth not setted. It could scroll weired.") 101 | #endif 102 | let multiplier = CGFloat(Int(maxX / frame.size.width) + 1) 103 | internalScrollView.contentSize = CGSize(width: multiplier * frame.size.width, 104 | height: frame.size.height) 105 | } 106 | } 107 | 108 | private func affineTransformParallaxItems() { 109 | super.layoutSubviews() 110 | let contentOffsetX = internalScrollView.contentOffset.x 111 | 112 | for parallaxScrollViewItem in parallaxViewItems { 113 | var acceleration = CGPoint.zero 114 | 115 | switch(parallaxScrollViewItem.acceleration) { 116 | case .invariable(let invariableAcceleration) : 117 | acceleration = invariableAcceleration 118 | break 119 | case .variable(let closure): 120 | acceleration = closure(self, parallaxScrollViewItem.view) 121 | break 122 | } 123 | 124 | parallaxScrollViewItem.view.layer.setAffineTransform(CGAffineTransform(translationX: contentOffsetX * (1.0 - acceleration.x), 125 | y: contentOffsetX * acceleration.y)) 126 | } 127 | } 128 | 129 | 130 | //MARK: UIScrollViewDelegate 131 | public func scrollViewWillBeginDragging(_ scrollView: UIScrollView) { 132 | delegate?.parallaxScrollViewWillBeginDragging?(self) 133 | } 134 | 135 | public func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) { 136 | delegate?.parallaxScrollViewDidEndDragging?(self, willDecelerate: decelerate) 137 | } 138 | 139 | public func scrollViewDidScroll(_ scrollView: UIScrollView) { 140 | affineTransformParallaxItems() 141 | for parallaxScrollViewItem in parallaxViewItems { 142 | parallaxScrollViewItem.progress(self, parallaxScrollViewItem.view) 143 | } 144 | delegate?.parallaxScrollViewDidScroll?(self) 145 | } 146 | 147 | public func scrollViewWillBeginDecelerating(_ scrollView: UIScrollView) { 148 | delegate?.parallaxScrollViewWillBeginDecelerating?(self) 149 | } 150 | 151 | public func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) { 152 | delegate?.parallaxScrollViewDidEndDecelerating?(self) 153 | } 154 | } 155 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-HorizontalParallaxScrollView_Tests/Pods-HorizontalParallaxScrollView_Tests-resources.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | set -u 4 | set -o pipefail 5 | 6 | if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then 7 | # If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy 8 | # resources to, so exit 0 (signalling the script phase was successful). 9 | exit 0 10 | fi 11 | 12 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 13 | 14 | RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt 15 | > "$RESOURCES_TO_COPY" 16 | 17 | XCASSET_FILES=() 18 | 19 | # This protects against multiple targets copying the same framework dependency at the same time. The solution 20 | # was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html 21 | RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") 22 | 23 | case "${TARGETED_DEVICE_FAMILY:-}" in 24 | 1,2) 25 | TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" 26 | ;; 27 | 1) 28 | TARGET_DEVICE_ARGS="--target-device iphone" 29 | ;; 30 | 2) 31 | TARGET_DEVICE_ARGS="--target-device ipad" 32 | ;; 33 | 3) 34 | TARGET_DEVICE_ARGS="--target-device tv" 35 | ;; 36 | 4) 37 | TARGET_DEVICE_ARGS="--target-device watch" 38 | ;; 39 | *) 40 | TARGET_DEVICE_ARGS="--target-device mac" 41 | ;; 42 | esac 43 | 44 | install_resource() 45 | { 46 | if [[ "$1" = /* ]] ; then 47 | RESOURCE_PATH="$1" 48 | else 49 | RESOURCE_PATH="${PODS_ROOT}/$1" 50 | fi 51 | if [[ ! -e "$RESOURCE_PATH" ]] ; then 52 | cat << EOM 53 | error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. 54 | EOM 55 | exit 1 56 | fi 57 | case $RESOURCE_PATH in 58 | *.storyboard) 59 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true 60 | ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} 61 | ;; 62 | *.xib) 63 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true 64 | ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} 65 | ;; 66 | *.framework) 67 | echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true 68 | mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 69 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true 70 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 71 | ;; 72 | *.xcdatamodel) 73 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true 74 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" 75 | ;; 76 | *.xcdatamodeld) 77 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true 78 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" 79 | ;; 80 | *.xcmappingmodel) 81 | echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true 82 | xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" 83 | ;; 84 | *.xcassets) 85 | ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH" 86 | XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") 87 | ;; 88 | *) 89 | echo "$RESOURCE_PATH" || true 90 | echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" 91 | ;; 92 | esac 93 | } 94 | 95 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 96 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 97 | if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then 98 | mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 99 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 100 | fi 101 | rm -f "$RESOURCES_TO_COPY" 102 | 103 | if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ] 104 | then 105 | # Find all other xcassets (this unfortunately includes those of path pods and other targets). 106 | OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) 107 | while read line; do 108 | if [[ $line != "${PODS_ROOT}*" ]]; then 109 | XCASSET_FILES+=("$line") 110 | fi 111 | done <<<"$OTHER_XCASSETS" 112 | 113 | if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then 114 | printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 115 | else 116 | printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist" 117 | fi 118 | fi 119 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-HorizontalParallaxScrollView_Example/Pods-HorizontalParallaxScrollView_Example-resources.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | set -u 4 | set -o pipefail 5 | 6 | if [ -z ${UNLOCALIZED_RESOURCES_FOLDER_PATH+x} ]; then 7 | # If UNLOCALIZED_RESOURCES_FOLDER_PATH is not set, then there's nowhere for us to copy 8 | # resources to, so exit 0 (signalling the script phase was successful). 9 | exit 0 10 | fi 11 | 12 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 13 | 14 | RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt 15 | > "$RESOURCES_TO_COPY" 16 | 17 | XCASSET_FILES=() 18 | 19 | # This protects against multiple targets copying the same framework dependency at the same time. The solution 20 | # was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html 21 | RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") 22 | 23 | case "${TARGETED_DEVICE_FAMILY:-}" in 24 | 1,2) 25 | TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" 26 | ;; 27 | 1) 28 | TARGET_DEVICE_ARGS="--target-device iphone" 29 | ;; 30 | 2) 31 | TARGET_DEVICE_ARGS="--target-device ipad" 32 | ;; 33 | 3) 34 | TARGET_DEVICE_ARGS="--target-device tv" 35 | ;; 36 | 4) 37 | TARGET_DEVICE_ARGS="--target-device watch" 38 | ;; 39 | *) 40 | TARGET_DEVICE_ARGS="--target-device mac" 41 | ;; 42 | esac 43 | 44 | install_resource() 45 | { 46 | if [[ "$1" = /* ]] ; then 47 | RESOURCE_PATH="$1" 48 | else 49 | RESOURCE_PATH="${PODS_ROOT}/$1" 50 | fi 51 | if [[ ! -e "$RESOURCE_PATH" ]] ; then 52 | cat << EOM 53 | error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. 54 | EOM 55 | exit 1 56 | fi 57 | case $RESOURCE_PATH in 58 | *.storyboard) 59 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true 60 | ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} 61 | ;; 62 | *.xib) 63 | echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" || true 64 | ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} 65 | ;; 66 | *.framework) 67 | echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true 68 | mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 69 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" || true 70 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 71 | ;; 72 | *.xcdatamodel) 73 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" || true 74 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" 75 | ;; 76 | *.xcdatamodeld) 77 | echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" || true 78 | xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" 79 | ;; 80 | *.xcmappingmodel) 81 | echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" || true 82 | xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" 83 | ;; 84 | *.xcassets) 85 | ABSOLUTE_XCASSET_FILE="$RESOURCE_PATH" 86 | XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") 87 | ;; 88 | *) 89 | echo "$RESOURCE_PATH" || true 90 | echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" 91 | ;; 92 | esac 93 | } 94 | 95 | mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 96 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 97 | if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then 98 | mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 99 | rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 100 | fi 101 | rm -f "$RESOURCES_TO_COPY" 102 | 103 | if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "${XCASSET_FILES:-}" ] 104 | then 105 | # Find all other xcassets (this unfortunately includes those of path pods and other targets). 106 | OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) 107 | while read line; do 108 | if [[ $line != "${PODS_ROOT}*" ]]; then 109 | XCASSET_FILES+=("$line") 110 | fi 111 | done <<<"$OTHER_XCASSETS" 112 | 113 | if [ -z ${ASSETCATALOG_COMPILER_APPICON_NAME+x} ]; then 114 | printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" 115 | else 116 | printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${TARGET_TEMP_DIR}/assetcatalog_generated_info_cocoapods.plist" 117 | fi 118 | fi 119 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-HorizontalParallaxScrollView_Tests/Pods-HorizontalParallaxScrollView_Tests-frameworks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | set -u 4 | set -o pipefail 5 | 6 | if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then 7 | # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy 8 | # frameworks to, so exit 0 (signalling the script phase was successful). 9 | exit 0 10 | fi 11 | 12 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 13 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 14 | 15 | COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" 16 | SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" 17 | 18 | # Used as a return value for each invocation of `strip_invalid_archs` function. 19 | STRIP_BINARY_RETVAL=0 20 | 21 | # This protects against multiple targets copying the same framework dependency at the same time. The solution 22 | # was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html 23 | RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") 24 | 25 | # Copies and strips a vendored framework 26 | install_framework() 27 | { 28 | if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then 29 | local source="${BUILT_PRODUCTS_DIR}/$1" 30 | elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then 31 | local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" 32 | elif [ -r "$1" ]; then 33 | local source="$1" 34 | fi 35 | 36 | local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 37 | 38 | if [ -L "${source}" ]; then 39 | echo "Symlinked..." 40 | source="$(readlink "${source}")" 41 | fi 42 | 43 | # Use filter instead of exclude so missing patterns don't throw errors. 44 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" 45 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" 46 | 47 | local basename 48 | basename="$(basename -s .framework "$1")" 49 | binary="${destination}/${basename}.framework/${basename}" 50 | if ! [ -r "$binary" ]; then 51 | binary="${destination}/${basename}" 52 | fi 53 | 54 | # Strip invalid architectures so "fat" simulator / device frameworks work on device 55 | if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then 56 | strip_invalid_archs "$binary" 57 | fi 58 | 59 | # Resign the code if required by the build settings to avoid unstable apps 60 | code_sign_if_enabled "${destination}/$(basename "$1")" 61 | 62 | # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. 63 | if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then 64 | local swift_runtime_libs 65 | swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) 66 | for lib in $swift_runtime_libs; do 67 | echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" 68 | rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" 69 | code_sign_if_enabled "${destination}/${lib}" 70 | done 71 | fi 72 | } 73 | 74 | # Copies and strips a vendored dSYM 75 | install_dsym() { 76 | local source="$1" 77 | if [ -r "$source" ]; then 78 | # Copy the dSYM into a the targets temp dir. 79 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" 80 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" 81 | 82 | local basename 83 | basename="$(basename -s .framework.dSYM "$source")" 84 | binary="${DERIVED_FILES_DIR}/${basename}.framework.dSYM/Contents/Resources/DWARF/${basename}" 85 | 86 | # Strip invalid architectures so "fat" simulator / device frameworks work on device 87 | if [[ "$(file "$binary")" == *"Mach-O dSYM companion"* ]]; then 88 | strip_invalid_archs "$binary" 89 | fi 90 | 91 | if [[ $STRIP_BINARY_RETVAL == 1 ]]; then 92 | # Move the stripped file into its final destination. 93 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" 94 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.framework.dSYM" "${DWARF_DSYM_FOLDER_PATH}" 95 | else 96 | # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. 97 | touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM" 98 | fi 99 | fi 100 | } 101 | 102 | # Signs a framework with the provided identity 103 | code_sign_if_enabled() { 104 | if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then 105 | # Use the current code_sign_identitiy 106 | echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" 107 | local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" 108 | 109 | if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then 110 | code_sign_cmd="$code_sign_cmd &" 111 | fi 112 | echo "$code_sign_cmd" 113 | eval "$code_sign_cmd" 114 | fi 115 | } 116 | 117 | # Strip invalid architectures 118 | strip_invalid_archs() { 119 | binary="$1" 120 | # Get architectures for current target binary 121 | binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" 122 | # Intersect them with the architectures we are building for 123 | intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" 124 | # If there are no archs supported by this binary then warn the user 125 | if [[ -z "$intersected_archs" ]]; then 126 | echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." 127 | STRIP_BINARY_RETVAL=0 128 | return 129 | fi 130 | stripped="" 131 | for arch in $binary_archs; do 132 | if ! [[ "${ARCHS}" == *"$arch"* ]]; then 133 | # Strip non-valid architectures in-place 134 | lipo -remove "$arch" -output "$binary" "$binary" || exit 1 135 | stripped="$stripped $arch" 136 | fi 137 | done 138 | if [[ "$stripped" ]]; then 139 | echo "Stripped $binary of architectures:$stripped" 140 | fi 141 | STRIP_BINARY_RETVAL=1 142 | } 143 | 144 | if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then 145 | wait 146 | fi 147 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-HorizontalParallaxScrollView_Example/Pods-HorizontalParallaxScrollView_Example-frameworks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | set -e 3 | set -u 4 | set -o pipefail 5 | 6 | if [ -z ${FRAMEWORKS_FOLDER_PATH+x} ]; then 7 | # If FRAMEWORKS_FOLDER_PATH is not set, then there's nowhere for us to copy 8 | # frameworks to, so exit 0 (signalling the script phase was successful). 9 | exit 0 10 | fi 11 | 12 | echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 13 | mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 14 | 15 | COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" 16 | SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" 17 | 18 | # Used as a return value for each invocation of `strip_invalid_archs` function. 19 | STRIP_BINARY_RETVAL=0 20 | 21 | # This protects against multiple targets copying the same framework dependency at the same time. The solution 22 | # was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html 23 | RSYNC_PROTECT_TMP_FILES=(--filter "P .*.??????") 24 | 25 | # Copies and strips a vendored framework 26 | install_framework() 27 | { 28 | if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then 29 | local source="${BUILT_PRODUCTS_DIR}/$1" 30 | elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then 31 | local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" 32 | elif [ -r "$1" ]; then 33 | local source="$1" 34 | fi 35 | 36 | local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" 37 | 38 | if [ -L "${source}" ]; then 39 | echo "Symlinked..." 40 | source="$(readlink "${source}")" 41 | fi 42 | 43 | # Use filter instead of exclude so missing patterns don't throw errors. 44 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" 45 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" 46 | 47 | local basename 48 | basename="$(basename -s .framework "$1")" 49 | binary="${destination}/${basename}.framework/${basename}" 50 | if ! [ -r "$binary" ]; then 51 | binary="${destination}/${basename}" 52 | fi 53 | 54 | # Strip invalid architectures so "fat" simulator / device frameworks work on device 55 | if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then 56 | strip_invalid_archs "$binary" 57 | fi 58 | 59 | # Resign the code if required by the build settings to avoid unstable apps 60 | code_sign_if_enabled "${destination}/$(basename "$1")" 61 | 62 | # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. 63 | if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then 64 | local swift_runtime_libs 65 | swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) 66 | for lib in $swift_runtime_libs; do 67 | echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" 68 | rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" 69 | code_sign_if_enabled "${destination}/${lib}" 70 | done 71 | fi 72 | } 73 | 74 | # Copies and strips a vendored dSYM 75 | install_dsym() { 76 | local source="$1" 77 | if [ -r "$source" ]; then 78 | # Copy the dSYM into a the targets temp dir. 79 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\"" 80 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}" 81 | 82 | local basename 83 | basename="$(basename -s .framework.dSYM "$source")" 84 | binary="${DERIVED_FILES_DIR}/${basename}.framework.dSYM/Contents/Resources/DWARF/${basename}" 85 | 86 | # Strip invalid architectures so "fat" simulator / device frameworks work on device 87 | if [[ "$(file "$binary")" == *"Mach-O dSYM companion"* ]]; then 88 | strip_invalid_archs "$binary" 89 | fi 90 | 91 | if [[ $STRIP_BINARY_RETVAL == 1 ]]; then 92 | # Move the stripped file into its final destination. 93 | echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" 94 | rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.framework.dSYM" "${DWARF_DSYM_FOLDER_PATH}" 95 | else 96 | # The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing. 97 | touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM" 98 | fi 99 | fi 100 | } 101 | 102 | # Signs a framework with the provided identity 103 | code_sign_if_enabled() { 104 | if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then 105 | # Use the current code_sign_identitiy 106 | echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" 107 | local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" 108 | 109 | if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then 110 | code_sign_cmd="$code_sign_cmd &" 111 | fi 112 | echo "$code_sign_cmd" 113 | eval "$code_sign_cmd" 114 | fi 115 | } 116 | 117 | # Strip invalid architectures 118 | strip_invalid_archs() { 119 | binary="$1" 120 | # Get architectures for current target binary 121 | binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)" 122 | # Intersect them with the architectures we are building for 123 | intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)" 124 | # If there are no archs supported by this binary then warn the user 125 | if [[ -z "$intersected_archs" ]]; then 126 | echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." 127 | STRIP_BINARY_RETVAL=0 128 | return 129 | fi 130 | stripped="" 131 | for arch in $binary_archs; do 132 | if ! [[ "${ARCHS}" == *"$arch"* ]]; then 133 | # Strip non-valid architectures in-place 134 | lipo -remove "$arch" -output "$binary" "$binary" || exit 1 135 | stripped="$stripped $arch" 136 | fi 137 | done 138 | if [[ "$stripped" ]]; then 139 | echo "Stripped $binary of architectures:$stripped" 140 | fi 141 | STRIP_BINARY_RETVAL=1 142 | } 143 | 144 | 145 | if [[ "$CONFIGURATION" == "Debug" ]]; then 146 | install_framework "${BUILT_PRODUCTS_DIR}/HorizontalParallaxScrollView/HorizontalParallaxScrollView.framework" 147 | fi 148 | if [[ "$CONFIGURATION" == "Release" ]]; then 149 | install_framework "${BUILT_PRODUCTS_DIR}/HorizontalParallaxScrollView/HorizontalParallaxScrollView.framework" 150 | fi 151 | if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then 152 | wait 153 | fi 154 | -------------------------------------------------------------------------------- /Example/HorizontalParallaxScrollView/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // HorizontalParallaxScrollView 4 | // 5 | // Created by syjdev on 11/10/2018. 6 | // Copyright (c) 2018 syjdev. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import HorizontalParallaxScrollView 11 | 12 | class ViewController: UIViewController { 13 | 14 | override func viewDidLoad() { 15 | super.viewDidLoad() 16 | 17 | let radius: CGFloat = 80 18 | 19 | let redCircleView = UIView(frame: CGRect(x: 0, y: 0, width: 2 * radius, height: 2 * radius)) 20 | redCircleView.layer.cornerRadius = radius 21 | redCircleView.backgroundColor = UIColor.red 22 | let redCircleItem = HorizontalParallaxScrollViewItem(view: redCircleView, 23 | originOffset: CGPoint(x: view.frame.width / 2 - radius, y: 140), 24 | acceleration: ParallaxAcceleration.invariable(CGPoint(x: 0.65, y: 0)), 25 | progress: { (parallaxView, view) in 26 | let maxScrollDistance = parallaxView.frame.width * 0.6 27 | view.alpha = (maxScrollDistance - parallaxView.contentOffset.x) / maxScrollDistance 28 | }) 29 | 30 | 31 | let labelBottomRedCircle = UILabel(frame: CGRect(x: 0, y: 0, width: 2 * radius, height: 30)) 32 | labelBottomRedCircle.textAlignment = .center 33 | labelBottomRedCircle.text = "Sample project." 34 | let labelBottomRedCircleItem = HorizontalParallaxScrollViewItem(view: labelBottomRedCircle, 35 | originOffset: CGPoint(x: view.frame.width / 2 - radius, y: 140 + 2 * radius + 30), 36 | acceleration: ParallaxAcceleration.invariable(CGPoint(x: 1, y: 0)), 37 | progress: { (parallaxView, view) in 38 | let maxScrollDistance = parallaxView.frame.width * 0.6 39 | view.alpha = (maxScrollDistance - parallaxView.contentOffset.x) / maxScrollDistance 40 | }) 41 | 42 | 43 | 44 | let blueCircleView = UIView(frame: CGRect(x: 0, y: 0, width: 2 * radius, height: 2 * radius)) 45 | blueCircleView.alpha = 0 46 | blueCircleView.backgroundColor = UIColor.blue 47 | blueCircleView.layer.cornerRadius = radius 48 | let blueCircleItem = HorizontalParallaxScrollViewItem(view: blueCircleView, 49 | originOffset: CGPoint(x: view.frame.width * 1.15 - radius, y: 140), 50 | acceleration: ParallaxAcceleration.invariable(CGPoint(x: 0.65, y: 0)), 51 | progress: { (parallaxView, view) in 52 | if parallaxView.contentOffset.x < parallaxView.frame.width { 53 | view.alpha = 1 - (parallaxView.frame.width - parallaxView.contentOffset.x) / parallaxView.frame.width 54 | } else { 55 | view.alpha = (parallaxView.frame.width * 2 - parallaxView.contentOffset.x) / parallaxView.frame.width 56 | } 57 | }) 58 | 59 | 60 | let labelBottomBlueCircle = UILabel(frame: CGRect(x: 0, y: 0, width: 2 * radius, height: 30)) 61 | labelBottomBlueCircle.alpha = 0 62 | labelBottomBlueCircle.textAlignment = .center 63 | labelBottomBlueCircle.text = "Sample project." 64 | let labelBottomBlueCircleItem = HorizontalParallaxScrollViewItem(view: labelBottomBlueCircle, 65 | originOffset: CGPoint(x: view.frame.width * 1.5 - radius, y: 140 + 2 * radius + 30), 66 | acceleration: ParallaxAcceleration.invariable(CGPoint(x: 1, y: 0)), 67 | progress: { (parallaxView, view) in 68 | if parallaxView.contentOffset.x < parallaxView.frame.width { 69 | view.alpha = 1 - (parallaxView.frame.width - parallaxView.contentOffset.x) / parallaxView.frame.width 70 | } else { 71 | view.alpha = (parallaxView.frame.width * 2 - parallaxView.contentOffset.x) / parallaxView.frame.width 72 | } 73 | }) 74 | 75 | 76 | let greenCircleView = UIView(frame: CGRect(x: 0, y: 0, width: 2 * radius, height: 2 * radius)) 77 | greenCircleView.alpha = 0 78 | greenCircleView.backgroundColor = UIColor.green 79 | greenCircleView.layer.cornerRadius = radius 80 | let greenCircleItem = HorizontalParallaxScrollViewItem(view: greenCircleView, 81 | originOffset: CGPoint(x: view.frame.width * 1.8 - radius, y: 140), 82 | acceleration: ParallaxAcceleration.invariable(CGPoint(x: 0.65, y: 0)), 83 | progress: { (parallaxView, view) in 84 | if parallaxView.contentOffset.x < parallaxView.frame.width * 2 { 85 | view.alpha = 1 - (parallaxView.frame.width * 2 - parallaxView.contentOffset.x) / parallaxView.frame.width 86 | } else { 87 | view.alpha = (parallaxView.frame.width * 3 - parallaxView.contentOffset.x) / parallaxView.frame.width 88 | } 89 | }) 90 | 91 | 92 | let labelBottomGreenCircle = UILabel(frame: CGRect(x: 0, y: 0, width: 2 * radius, height: 30)) 93 | labelBottomGreenCircle.alpha = 0 94 | labelBottomGreenCircle.textAlignment = .center 95 | labelBottomGreenCircle.text = "Sample project." 96 | let labelBottomGreenCircleItem = HorizontalParallaxScrollViewItem(view: labelBottomGreenCircle, 97 | originOffset: CGPoint(x: view.frame.width * 2.5 - radius, y: 140 + 2 * radius + 30), 98 | acceleration: ParallaxAcceleration.invariable(CGPoint(x: 1, y: 0)), 99 | progress: { (parallaxView, view) in 100 | if parallaxView.contentOffset.x < parallaxView.frame.width * 2 { 101 | view.alpha = 1 - (parallaxView.frame.width * 2 - parallaxView.contentOffset.x) / parallaxView.frame.width 102 | } else { 103 | view.alpha = (parallaxView.frame.width * 3 - parallaxView.contentOffset.x) / parallaxView.frame.width 104 | } 105 | }) 106 | 107 | 108 | let parallaxScrollView = HorizontalParallaxScrollViewBuilder.setOption { (option) in 109 | option.frame = view.frame 110 | option.isPagingEnabled = true 111 | option.parallaxViewItems = [redCircleItem, labelBottomRedCircleItem, 112 | blueCircleItem, labelBottomBlueCircleItem, 113 | greenCircleItem, labelBottomGreenCircleItem] 114 | option.contentWidth = view.frame.width * 3.0 115 | }.build() 116 | 117 | view.addSubview(parallaxScrollView) 118 | } 119 | } 120 | -------------------------------------------------------------------------------- /Example/HorizontalParallaxScrollView.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 4924B29EEFF2797059260992 /* Pods_HorizontalParallaxScrollView_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CCD9F06D09A53DFBBACA10F7 /* Pods_HorizontalParallaxScrollView_Example.framework */; }; 11 | 607FACD61AFB9204008FA782 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACD51AFB9204008FA782 /* AppDelegate.swift */; }; 12 | 607FACD81AFB9204008FA782 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACD71AFB9204008FA782 /* ViewController.swift */; }; 13 | 607FACDB1AFB9204008FA782 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 607FACD91AFB9204008FA782 /* Main.storyboard */; }; 14 | 607FACDD1AFB9204008FA782 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDC1AFB9204008FA782 /* Images.xcassets */; }; 15 | 607FACE01AFB9204008FA782 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */; }; 16 | 607FACEC1AFB9204008FA782 /* Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACEB1AFB9204008FA782 /* Tests.swift */; }; 17 | 7C0541835222AD5C1E5F2D32 /* Pods_HorizontalParallaxScrollView_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E12188DF650F0D92F581BCB4 /* Pods_HorizontalParallaxScrollView_Tests.framework */; }; 18 | /* End PBXBuildFile section */ 19 | 20 | /* Begin PBXContainerItemProxy section */ 21 | 607FACE61AFB9204008FA782 /* PBXContainerItemProxy */ = { 22 | isa = PBXContainerItemProxy; 23 | containerPortal = 607FACC81AFB9204008FA782 /* Project object */; 24 | proxyType = 1; 25 | remoteGlobalIDString = 607FACCF1AFB9204008FA782; 26 | remoteInfo = HorizontalParallaxScrollView; 27 | }; 28 | /* End PBXContainerItemProxy section */ 29 | 30 | /* Begin PBXFileReference section */ 31 | 0A64F360A5CD6FDF61A2ADCB /* Pods-HorizontalParallaxScrollView_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HorizontalParallaxScrollView_Tests.release.xcconfig"; path = "Pods/Target Support Files/Pods-HorizontalParallaxScrollView_Tests/Pods-HorizontalParallaxScrollView_Tests.release.xcconfig"; sourceTree = ""; }; 32 | 0CEA9C791E828C621EA67B16 /* Pods-HorizontalParallaxScrollView_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HorizontalParallaxScrollView_Example.release.xcconfig"; path = "Pods/Target Support Files/Pods-HorizontalParallaxScrollView_Example/Pods-HorizontalParallaxScrollView_Example.release.xcconfig"; sourceTree = ""; }; 33 | 3BCD08D62635955CB663F0E2 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = LICENSE; path = ../LICENSE; sourceTree = ""; }; 34 | 607FACD01AFB9204008FA782 /* HorizontalParallaxScrollView_Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = HorizontalParallaxScrollView_Example.app; sourceTree = BUILT_PRODUCTS_DIR; }; 35 | 607FACD41AFB9204008FA782 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 36 | 607FACD51AFB9204008FA782 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 37 | 607FACD71AFB9204008FA782 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; 38 | 607FACDA1AFB9204008FA782 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 39 | 607FACDC1AFB9204008FA782 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; 40 | 607FACDF1AFB9204008FA782 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; 41 | 607FACE51AFB9204008FA782 /* HorizontalParallaxScrollView_Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = HorizontalParallaxScrollView_Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 42 | 607FACEA1AFB9204008FA782 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 43 | 607FACEB1AFB9204008FA782 /* Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Tests.swift; sourceTree = ""; }; 44 | 7D4571C6B43328A2C3EB8FDC /* Pods-HorizontalParallaxScrollView_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HorizontalParallaxScrollView_Example.debug.xcconfig"; path = "Pods/Target Support Files/Pods-HorizontalParallaxScrollView_Example/Pods-HorizontalParallaxScrollView_Example.debug.xcconfig"; sourceTree = ""; }; 45 | 8D8A9C1A8F8EF62BB7BA0608 /* Pods-HorizontalParallaxScrollView_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HorizontalParallaxScrollView_Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-HorizontalParallaxScrollView_Tests/Pods-HorizontalParallaxScrollView_Tests.debug.xcconfig"; sourceTree = ""; }; 46 | C9B4431EC72DD9B51B502851 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../README.md; sourceTree = ""; }; 47 | CCD9F06D09A53DFBBACA10F7 /* Pods_HorizontalParallaxScrollView_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_HorizontalParallaxScrollView_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 48 | E10FD01F282F65BB41FEDD14 /* HorizontalParallaxScrollView.podspec */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = HorizontalParallaxScrollView.podspec; path = ../HorizontalParallaxScrollView.podspec; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 49 | E12188DF650F0D92F581BCB4 /* Pods_HorizontalParallaxScrollView_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_HorizontalParallaxScrollView_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 50 | /* End PBXFileReference section */ 51 | 52 | /* Begin PBXFrameworksBuildPhase section */ 53 | 607FACCD1AFB9204008FA782 /* Frameworks */ = { 54 | isa = PBXFrameworksBuildPhase; 55 | buildActionMask = 2147483647; 56 | files = ( 57 | 4924B29EEFF2797059260992 /* Pods_HorizontalParallaxScrollView_Example.framework in Frameworks */, 58 | ); 59 | runOnlyForDeploymentPostprocessing = 0; 60 | }; 61 | 607FACE21AFB9204008FA782 /* Frameworks */ = { 62 | isa = PBXFrameworksBuildPhase; 63 | buildActionMask = 2147483647; 64 | files = ( 65 | 7C0541835222AD5C1E5F2D32 /* Pods_HorizontalParallaxScrollView_Tests.framework in Frameworks */, 66 | ); 67 | runOnlyForDeploymentPostprocessing = 0; 68 | }; 69 | /* End PBXFrameworksBuildPhase section */ 70 | 71 | /* Begin PBXGroup section */ 72 | 48C6A4843F3E6AB0187D3A94 /* Frameworks */ = { 73 | isa = PBXGroup; 74 | children = ( 75 | CCD9F06D09A53DFBBACA10F7 /* Pods_HorizontalParallaxScrollView_Example.framework */, 76 | E12188DF650F0D92F581BCB4 /* Pods_HorizontalParallaxScrollView_Tests.framework */, 77 | ); 78 | name = Frameworks; 79 | sourceTree = ""; 80 | }; 81 | 607FACC71AFB9204008FA782 = { 82 | isa = PBXGroup; 83 | children = ( 84 | 607FACF51AFB993E008FA782 /* Podspec Metadata */, 85 | 607FACD21AFB9204008FA782 /* Example for HorizontalParallaxScrollView */, 86 | 607FACE81AFB9204008FA782 /* Tests */, 87 | 607FACD11AFB9204008FA782 /* Products */, 88 | DE2ADD1A949E0D7C95C9E04D /* Pods */, 89 | 48C6A4843F3E6AB0187D3A94 /* Frameworks */, 90 | ); 91 | sourceTree = ""; 92 | }; 93 | 607FACD11AFB9204008FA782 /* Products */ = { 94 | isa = PBXGroup; 95 | children = ( 96 | 607FACD01AFB9204008FA782 /* HorizontalParallaxScrollView_Example.app */, 97 | 607FACE51AFB9204008FA782 /* HorizontalParallaxScrollView_Tests.xctest */, 98 | ); 99 | name = Products; 100 | sourceTree = ""; 101 | }; 102 | 607FACD21AFB9204008FA782 /* Example for HorizontalParallaxScrollView */ = { 103 | isa = PBXGroup; 104 | children = ( 105 | 607FACD51AFB9204008FA782 /* AppDelegate.swift */, 106 | 607FACD71AFB9204008FA782 /* ViewController.swift */, 107 | 607FACD91AFB9204008FA782 /* Main.storyboard */, 108 | 607FACDC1AFB9204008FA782 /* Images.xcassets */, 109 | 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */, 110 | 607FACD31AFB9204008FA782 /* Supporting Files */, 111 | ); 112 | name = "Example for HorizontalParallaxScrollView"; 113 | path = HorizontalParallaxScrollView; 114 | sourceTree = ""; 115 | }; 116 | 607FACD31AFB9204008FA782 /* Supporting Files */ = { 117 | isa = PBXGroup; 118 | children = ( 119 | 607FACD41AFB9204008FA782 /* Info.plist */, 120 | ); 121 | name = "Supporting Files"; 122 | sourceTree = ""; 123 | }; 124 | 607FACE81AFB9204008FA782 /* Tests */ = { 125 | isa = PBXGroup; 126 | children = ( 127 | 607FACEB1AFB9204008FA782 /* Tests.swift */, 128 | 607FACE91AFB9204008FA782 /* Supporting Files */, 129 | ); 130 | path = Tests; 131 | sourceTree = ""; 132 | }; 133 | 607FACE91AFB9204008FA782 /* Supporting Files */ = { 134 | isa = PBXGroup; 135 | children = ( 136 | 607FACEA1AFB9204008FA782 /* Info.plist */, 137 | ); 138 | name = "Supporting Files"; 139 | sourceTree = ""; 140 | }; 141 | 607FACF51AFB993E008FA782 /* Podspec Metadata */ = { 142 | isa = PBXGroup; 143 | children = ( 144 | E10FD01F282F65BB41FEDD14 /* HorizontalParallaxScrollView.podspec */, 145 | C9B4431EC72DD9B51B502851 /* README.md */, 146 | 3BCD08D62635955CB663F0E2 /* LICENSE */, 147 | ); 148 | name = "Podspec Metadata"; 149 | sourceTree = ""; 150 | }; 151 | DE2ADD1A949E0D7C95C9E04D /* Pods */ = { 152 | isa = PBXGroup; 153 | children = ( 154 | 7D4571C6B43328A2C3EB8FDC /* Pods-HorizontalParallaxScrollView_Example.debug.xcconfig */, 155 | 0CEA9C791E828C621EA67B16 /* Pods-HorizontalParallaxScrollView_Example.release.xcconfig */, 156 | 8D8A9C1A8F8EF62BB7BA0608 /* Pods-HorizontalParallaxScrollView_Tests.debug.xcconfig */, 157 | 0A64F360A5CD6FDF61A2ADCB /* Pods-HorizontalParallaxScrollView_Tests.release.xcconfig */, 158 | ); 159 | name = Pods; 160 | sourceTree = ""; 161 | }; 162 | /* End PBXGroup section */ 163 | 164 | /* Begin PBXNativeTarget section */ 165 | 607FACCF1AFB9204008FA782 /* HorizontalParallaxScrollView_Example */ = { 166 | isa = PBXNativeTarget; 167 | buildConfigurationList = 607FACEF1AFB9204008FA782 /* Build configuration list for PBXNativeTarget "HorizontalParallaxScrollView_Example" */; 168 | buildPhases = ( 169 | 40F8AD8A8052F3AFDFF1B7D3 /* [CP] Check Pods Manifest.lock */, 170 | 607FACCC1AFB9204008FA782 /* Sources */, 171 | 607FACCD1AFB9204008FA782 /* Frameworks */, 172 | 607FACCE1AFB9204008FA782 /* Resources */, 173 | ACD3318AD1F9D622382261B7 /* [CP] Embed Pods Frameworks */, 174 | ); 175 | buildRules = ( 176 | ); 177 | dependencies = ( 178 | ); 179 | name = HorizontalParallaxScrollView_Example; 180 | productName = HorizontalParallaxScrollView; 181 | productReference = 607FACD01AFB9204008FA782 /* HorizontalParallaxScrollView_Example.app */; 182 | productType = "com.apple.product-type.application"; 183 | }; 184 | 607FACE41AFB9204008FA782 /* HorizontalParallaxScrollView_Tests */ = { 185 | isa = PBXNativeTarget; 186 | buildConfigurationList = 607FACF21AFB9204008FA782 /* Build configuration list for PBXNativeTarget "HorizontalParallaxScrollView_Tests" */; 187 | buildPhases = ( 188 | 5507F1072330FFF36F6B80AE /* [CP] Check Pods Manifest.lock */, 189 | 607FACE11AFB9204008FA782 /* Sources */, 190 | 607FACE21AFB9204008FA782 /* Frameworks */, 191 | 607FACE31AFB9204008FA782 /* Resources */, 192 | ); 193 | buildRules = ( 194 | ); 195 | dependencies = ( 196 | 607FACE71AFB9204008FA782 /* PBXTargetDependency */, 197 | ); 198 | name = HorizontalParallaxScrollView_Tests; 199 | productName = Tests; 200 | productReference = 607FACE51AFB9204008FA782 /* HorizontalParallaxScrollView_Tests.xctest */; 201 | productType = "com.apple.product-type.bundle.unit-test"; 202 | }; 203 | /* End PBXNativeTarget section */ 204 | 205 | /* Begin PBXProject section */ 206 | 607FACC81AFB9204008FA782 /* Project object */ = { 207 | isa = PBXProject; 208 | attributes = { 209 | LastSwiftUpdateCheck = 0830; 210 | LastUpgradeCheck = 0830; 211 | ORGANIZATIONNAME = CocoaPods; 212 | TargetAttributes = { 213 | 607FACCF1AFB9204008FA782 = { 214 | CreatedOnToolsVersion = 6.3.1; 215 | LastSwiftMigration = 0900; 216 | }; 217 | 607FACE41AFB9204008FA782 = { 218 | CreatedOnToolsVersion = 6.3.1; 219 | LastSwiftMigration = 0900; 220 | TestTargetID = 607FACCF1AFB9204008FA782; 221 | }; 222 | }; 223 | }; 224 | buildConfigurationList = 607FACCB1AFB9204008FA782 /* Build configuration list for PBXProject "HorizontalParallaxScrollView" */; 225 | compatibilityVersion = "Xcode 3.2"; 226 | developmentRegion = English; 227 | hasScannedForEncodings = 0; 228 | knownRegions = ( 229 | en, 230 | Base, 231 | ); 232 | mainGroup = 607FACC71AFB9204008FA782; 233 | productRefGroup = 607FACD11AFB9204008FA782 /* Products */; 234 | projectDirPath = ""; 235 | projectRoot = ""; 236 | targets = ( 237 | 607FACCF1AFB9204008FA782 /* HorizontalParallaxScrollView_Example */, 238 | 607FACE41AFB9204008FA782 /* HorizontalParallaxScrollView_Tests */, 239 | ); 240 | }; 241 | /* End PBXProject section */ 242 | 243 | /* Begin PBXResourcesBuildPhase section */ 244 | 607FACCE1AFB9204008FA782 /* Resources */ = { 245 | isa = PBXResourcesBuildPhase; 246 | buildActionMask = 2147483647; 247 | files = ( 248 | 607FACDB1AFB9204008FA782 /* Main.storyboard in Resources */, 249 | 607FACE01AFB9204008FA782 /* LaunchScreen.xib in Resources */, 250 | 607FACDD1AFB9204008FA782 /* Images.xcassets in Resources */, 251 | ); 252 | runOnlyForDeploymentPostprocessing = 0; 253 | }; 254 | 607FACE31AFB9204008FA782 /* Resources */ = { 255 | isa = PBXResourcesBuildPhase; 256 | buildActionMask = 2147483647; 257 | files = ( 258 | ); 259 | runOnlyForDeploymentPostprocessing = 0; 260 | }; 261 | /* End PBXResourcesBuildPhase section */ 262 | 263 | /* Begin PBXShellScriptBuildPhase section */ 264 | 40F8AD8A8052F3AFDFF1B7D3 /* [CP] Check Pods Manifest.lock */ = { 265 | isa = PBXShellScriptBuildPhase; 266 | buildActionMask = 2147483647; 267 | files = ( 268 | ); 269 | inputPaths = ( 270 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock", 271 | "${PODS_ROOT}/Manifest.lock", 272 | ); 273 | name = "[CP] Check Pods Manifest.lock"; 274 | outputPaths = ( 275 | "$(DERIVED_FILE_DIR)/Pods-HorizontalParallaxScrollView_Example-checkManifestLockResult.txt", 276 | ); 277 | runOnlyForDeploymentPostprocessing = 0; 278 | shellPath = /bin/sh; 279 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; 280 | showEnvVarsInLog = 0; 281 | }; 282 | 5507F1072330FFF36F6B80AE /* [CP] Check Pods Manifest.lock */ = { 283 | isa = PBXShellScriptBuildPhase; 284 | buildActionMask = 2147483647; 285 | files = ( 286 | ); 287 | inputPaths = ( 288 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock", 289 | "${PODS_ROOT}/Manifest.lock", 290 | ); 291 | name = "[CP] Check Pods Manifest.lock"; 292 | outputPaths = ( 293 | "$(DERIVED_FILE_DIR)/Pods-HorizontalParallaxScrollView_Tests-checkManifestLockResult.txt", 294 | ); 295 | runOnlyForDeploymentPostprocessing = 0; 296 | shellPath = /bin/sh; 297 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; 298 | showEnvVarsInLog = 0; 299 | }; 300 | ACD3318AD1F9D622382261B7 /* [CP] Embed Pods Frameworks */ = { 301 | isa = PBXShellScriptBuildPhase; 302 | buildActionMask = 2147483647; 303 | files = ( 304 | ); 305 | inputPaths = ( 306 | "${SRCROOT}/Pods/Target Support Files/Pods-HorizontalParallaxScrollView_Example/Pods-HorizontalParallaxScrollView_Example-frameworks.sh", 307 | "${BUILT_PRODUCTS_DIR}/HorizontalParallaxScrollView/HorizontalParallaxScrollView.framework", 308 | ); 309 | name = "[CP] Embed Pods Frameworks"; 310 | outputPaths = ( 311 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/HorizontalParallaxScrollView.framework", 312 | ); 313 | runOnlyForDeploymentPostprocessing = 0; 314 | shellPath = /bin/sh; 315 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-HorizontalParallaxScrollView_Example/Pods-HorizontalParallaxScrollView_Example-frameworks.sh\"\n"; 316 | showEnvVarsInLog = 0; 317 | }; 318 | /* End PBXShellScriptBuildPhase section */ 319 | 320 | /* Begin PBXSourcesBuildPhase section */ 321 | 607FACCC1AFB9204008FA782 /* Sources */ = { 322 | isa = PBXSourcesBuildPhase; 323 | buildActionMask = 2147483647; 324 | files = ( 325 | 607FACD81AFB9204008FA782 /* ViewController.swift in Sources */, 326 | 607FACD61AFB9204008FA782 /* AppDelegate.swift in Sources */, 327 | ); 328 | runOnlyForDeploymentPostprocessing = 0; 329 | }; 330 | 607FACE11AFB9204008FA782 /* Sources */ = { 331 | isa = PBXSourcesBuildPhase; 332 | buildActionMask = 2147483647; 333 | files = ( 334 | 607FACEC1AFB9204008FA782 /* Tests.swift in Sources */, 335 | ); 336 | runOnlyForDeploymentPostprocessing = 0; 337 | }; 338 | /* End PBXSourcesBuildPhase section */ 339 | 340 | /* Begin PBXTargetDependency section */ 341 | 607FACE71AFB9204008FA782 /* PBXTargetDependency */ = { 342 | isa = PBXTargetDependency; 343 | target = 607FACCF1AFB9204008FA782 /* HorizontalParallaxScrollView_Example */; 344 | targetProxy = 607FACE61AFB9204008FA782 /* PBXContainerItemProxy */; 345 | }; 346 | /* End PBXTargetDependency section */ 347 | 348 | /* Begin PBXVariantGroup section */ 349 | 607FACD91AFB9204008FA782 /* Main.storyboard */ = { 350 | isa = PBXVariantGroup; 351 | children = ( 352 | 607FACDA1AFB9204008FA782 /* Base */, 353 | ); 354 | name = Main.storyboard; 355 | sourceTree = ""; 356 | }; 357 | 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */ = { 358 | isa = PBXVariantGroup; 359 | children = ( 360 | 607FACDF1AFB9204008FA782 /* Base */, 361 | ); 362 | name = LaunchScreen.xib; 363 | sourceTree = ""; 364 | }; 365 | /* End PBXVariantGroup section */ 366 | 367 | /* Begin XCBuildConfiguration section */ 368 | 607FACED1AFB9204008FA782 /* Debug */ = { 369 | isa = XCBuildConfiguration; 370 | buildSettings = { 371 | ALWAYS_SEARCH_USER_PATHS = NO; 372 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 373 | CLANG_CXX_LIBRARY = "libc++"; 374 | CLANG_ENABLE_MODULES = YES; 375 | CLANG_ENABLE_OBJC_ARC = YES; 376 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 377 | CLANG_WARN_BOOL_CONVERSION = YES; 378 | CLANG_WARN_COMMA = YES; 379 | CLANG_WARN_CONSTANT_CONVERSION = YES; 380 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 381 | CLANG_WARN_EMPTY_BODY = YES; 382 | CLANG_WARN_ENUM_CONVERSION = YES; 383 | CLANG_WARN_INFINITE_RECURSION = YES; 384 | CLANG_WARN_INT_CONVERSION = YES; 385 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 386 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 387 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 388 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 389 | CLANG_WARN_STRICT_PROTOTYPES = YES; 390 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 391 | CLANG_WARN_UNREACHABLE_CODE = YES; 392 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 393 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 394 | COPY_PHASE_STRIP = NO; 395 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 396 | ENABLE_STRICT_OBJC_MSGSEND = YES; 397 | ENABLE_TESTABILITY = YES; 398 | GCC_C_LANGUAGE_STANDARD = gnu99; 399 | GCC_DYNAMIC_NO_PIC = NO; 400 | GCC_NO_COMMON_BLOCKS = YES; 401 | GCC_OPTIMIZATION_LEVEL = 0; 402 | GCC_PREPROCESSOR_DEFINITIONS = ( 403 | "DEBUG=1", 404 | "$(inherited)", 405 | ); 406 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 407 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 408 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 409 | GCC_WARN_UNDECLARED_SELECTOR = YES; 410 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 411 | GCC_WARN_UNUSED_FUNCTION = YES; 412 | GCC_WARN_UNUSED_VARIABLE = YES; 413 | IPHONEOS_DEPLOYMENT_TARGET = 9.3; 414 | MTL_ENABLE_DEBUG_INFO = YES; 415 | ONLY_ACTIVE_ARCH = YES; 416 | SDKROOT = iphoneos; 417 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 418 | }; 419 | name = Debug; 420 | }; 421 | 607FACEE1AFB9204008FA782 /* Release */ = { 422 | isa = XCBuildConfiguration; 423 | buildSettings = { 424 | ALWAYS_SEARCH_USER_PATHS = NO; 425 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 426 | CLANG_CXX_LIBRARY = "libc++"; 427 | CLANG_ENABLE_MODULES = YES; 428 | CLANG_ENABLE_OBJC_ARC = YES; 429 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 430 | CLANG_WARN_BOOL_CONVERSION = YES; 431 | CLANG_WARN_COMMA = YES; 432 | CLANG_WARN_CONSTANT_CONVERSION = YES; 433 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 434 | CLANG_WARN_EMPTY_BODY = YES; 435 | CLANG_WARN_ENUM_CONVERSION = YES; 436 | CLANG_WARN_INFINITE_RECURSION = YES; 437 | CLANG_WARN_INT_CONVERSION = YES; 438 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 439 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 440 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 441 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 442 | CLANG_WARN_STRICT_PROTOTYPES = YES; 443 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 444 | CLANG_WARN_UNREACHABLE_CODE = YES; 445 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 446 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 447 | COPY_PHASE_STRIP = NO; 448 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 449 | ENABLE_NS_ASSERTIONS = NO; 450 | ENABLE_STRICT_OBJC_MSGSEND = YES; 451 | GCC_C_LANGUAGE_STANDARD = gnu99; 452 | GCC_NO_COMMON_BLOCKS = YES; 453 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 454 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 455 | GCC_WARN_UNDECLARED_SELECTOR = YES; 456 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 457 | GCC_WARN_UNUSED_FUNCTION = YES; 458 | GCC_WARN_UNUSED_VARIABLE = YES; 459 | IPHONEOS_DEPLOYMENT_TARGET = 9.3; 460 | MTL_ENABLE_DEBUG_INFO = NO; 461 | SDKROOT = iphoneos; 462 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; 463 | VALIDATE_PRODUCT = YES; 464 | }; 465 | name = Release; 466 | }; 467 | 607FACF01AFB9204008FA782 /* Debug */ = { 468 | isa = XCBuildConfiguration; 469 | baseConfigurationReference = 7D4571C6B43328A2C3EB8FDC /* Pods-HorizontalParallaxScrollView_Example.debug.xcconfig */; 470 | buildSettings = { 471 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 472 | INFOPLIST_FILE = HorizontalParallaxScrollView/Info.plist; 473 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 474 | MODULE_NAME = ExampleApp; 475 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.$(PRODUCT_NAME:rfc1034identifier)"; 476 | PRODUCT_NAME = "$(TARGET_NAME)"; 477 | SWIFT_SWIFT3_OBJC_INFERENCE = Default; 478 | SWIFT_VERSION = 4.0; 479 | }; 480 | name = Debug; 481 | }; 482 | 607FACF11AFB9204008FA782 /* Release */ = { 483 | isa = XCBuildConfiguration; 484 | baseConfigurationReference = 0CEA9C791E828C621EA67B16 /* Pods-HorizontalParallaxScrollView_Example.release.xcconfig */; 485 | buildSettings = { 486 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 487 | INFOPLIST_FILE = HorizontalParallaxScrollView/Info.plist; 488 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 489 | MODULE_NAME = ExampleApp; 490 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.$(PRODUCT_NAME:rfc1034identifier)"; 491 | PRODUCT_NAME = "$(TARGET_NAME)"; 492 | SWIFT_SWIFT3_OBJC_INFERENCE = Default; 493 | SWIFT_VERSION = 4.0; 494 | }; 495 | name = Release; 496 | }; 497 | 607FACF31AFB9204008FA782 /* Debug */ = { 498 | isa = XCBuildConfiguration; 499 | baseConfigurationReference = 8D8A9C1A8F8EF62BB7BA0608 /* Pods-HorizontalParallaxScrollView_Tests.debug.xcconfig */; 500 | buildSettings = { 501 | FRAMEWORK_SEARCH_PATHS = ( 502 | "$(SDKROOT)/Developer/Library/Frameworks", 503 | "$(inherited)", 504 | ); 505 | GCC_PREPROCESSOR_DEFINITIONS = ( 506 | "DEBUG=1", 507 | "$(inherited)", 508 | ); 509 | INFOPLIST_FILE = Tests/Info.plist; 510 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 511 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.$(PRODUCT_NAME:rfc1034identifier)"; 512 | PRODUCT_NAME = "$(TARGET_NAME)"; 513 | SWIFT_SWIFT3_OBJC_INFERENCE = Default; 514 | SWIFT_VERSION = 4.0; 515 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/HorizontalParallaxScrollView_Example.app/HorizontalParallaxScrollView_Example"; 516 | }; 517 | name = Debug; 518 | }; 519 | 607FACF41AFB9204008FA782 /* Release */ = { 520 | isa = XCBuildConfiguration; 521 | baseConfigurationReference = 0A64F360A5CD6FDF61A2ADCB /* Pods-HorizontalParallaxScrollView_Tests.release.xcconfig */; 522 | buildSettings = { 523 | FRAMEWORK_SEARCH_PATHS = ( 524 | "$(SDKROOT)/Developer/Library/Frameworks", 525 | "$(inherited)", 526 | ); 527 | INFOPLIST_FILE = Tests/Info.plist; 528 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 529 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.$(PRODUCT_NAME:rfc1034identifier)"; 530 | PRODUCT_NAME = "$(TARGET_NAME)"; 531 | SWIFT_SWIFT3_OBJC_INFERENCE = Default; 532 | SWIFT_VERSION = 4.0; 533 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/HorizontalParallaxScrollView_Example.app/HorizontalParallaxScrollView_Example"; 534 | }; 535 | name = Release; 536 | }; 537 | /* End XCBuildConfiguration section */ 538 | 539 | /* Begin XCConfigurationList section */ 540 | 607FACCB1AFB9204008FA782 /* Build configuration list for PBXProject "HorizontalParallaxScrollView" */ = { 541 | isa = XCConfigurationList; 542 | buildConfigurations = ( 543 | 607FACED1AFB9204008FA782 /* Debug */, 544 | 607FACEE1AFB9204008FA782 /* Release */, 545 | ); 546 | defaultConfigurationIsVisible = 0; 547 | defaultConfigurationName = Release; 548 | }; 549 | 607FACEF1AFB9204008FA782 /* Build configuration list for PBXNativeTarget "HorizontalParallaxScrollView_Example" */ = { 550 | isa = XCConfigurationList; 551 | buildConfigurations = ( 552 | 607FACF01AFB9204008FA782 /* Debug */, 553 | 607FACF11AFB9204008FA782 /* Release */, 554 | ); 555 | defaultConfigurationIsVisible = 0; 556 | defaultConfigurationName = Release; 557 | }; 558 | 607FACF21AFB9204008FA782 /* Build configuration list for PBXNativeTarget "HorizontalParallaxScrollView_Tests" */ = { 559 | isa = XCConfigurationList; 560 | buildConfigurations = ( 561 | 607FACF31AFB9204008FA782 /* Debug */, 562 | 607FACF41AFB9204008FA782 /* Release */, 563 | ); 564 | defaultConfigurationIsVisible = 0; 565 | defaultConfigurationName = Release; 566 | }; 567 | /* End XCConfigurationList section */ 568 | }; 569 | rootObject = 607FACC81AFB9204008FA782 /* Project object */; 570 | } 571 | -------------------------------------------------------------------------------- /Example/Pods/Pods.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 2E105058A343259D74CB3E7D483013B0 /* Pods-HorizontalParallaxScrollView_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 15BF4FECAB544A8BA98611D240E45A0F /* Pods-HorizontalParallaxScrollView_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 11 | 2EC49DB7C885E26D63FBB7FF246E6DFA /* Pods-HorizontalParallaxScrollView_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = FF13937BE11380B3814ABF15E07F55D5 /* Pods-HorizontalParallaxScrollView_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 12 | 76D4B0110B18C2186336D2B5F54EC59F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A16F4CFC63FAC439D7A04994F579A03 /* Foundation.framework */; }; 13 | 76FCCCB23711C2F05910F866E665054A /* HorizontalParallaxScrollView-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = F3B1E99028EB7D6E4F0F57D59F4A61BD /* HorizontalParallaxScrollView-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 14 | 87AEEA4FCE3E4C263FB423E135D01D62 /* Pods-HorizontalParallaxScrollView_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = EF3DF81B5F13299F5B62347528BDAE15 /* Pods-HorizontalParallaxScrollView_Tests-dummy.m */; }; 15 | 965FD29253B76343650F96891F08AC52 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A16F4CFC63FAC439D7A04994F579A03 /* Foundation.framework */; }; 16 | 9C5965C48C1719295A306E6148545DCC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A16F4CFC63FAC439D7A04994F579A03 /* Foundation.framework */; }; 17 | D3EDA5ABD734609969809A14F4DB1853 /* HorizontalParallaxScrollView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FB596D78795104F069D7A9FD284F2C69 /* HorizontalParallaxScrollView-dummy.m */; }; 18 | DE83A8FD2171AD48008EF11C /* HorizontalParallaxScrollView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE83A8FB2171AD48008EF11C /* HorizontalParallaxScrollView.swift */; }; 19 | DE83A8FE2171AD48008EF11C /* HorizontalParallaxScrollViewItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE83A8FC2171AD48008EF11C /* HorizontalParallaxScrollViewItem.swift */; }; 20 | FE01BC3701F4641C20A8FAEAC0B8EB83 /* Pods-HorizontalParallaxScrollView_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FCDB9C0FF087CD8201307C4E77239066 /* Pods-HorizontalParallaxScrollView_Example-dummy.m */; }; 21 | /* End PBXBuildFile section */ 22 | 23 | /* Begin PBXContainerItemProxy section */ 24 | 7BB78FCB6B7C9EA759775F2346CB7AEC /* PBXContainerItemProxy */ = { 25 | isa = PBXContainerItemProxy; 26 | containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; 27 | proxyType = 1; 28 | remoteGlobalIDString = 129E182CA485E113D647C50716DA3513; 29 | remoteInfo = HorizontalParallaxScrollView; 30 | }; 31 | 844F5E82794D782000B020F78B7A8C8D /* PBXContainerItemProxy */ = { 32 | isa = PBXContainerItemProxy; 33 | containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; 34 | proxyType = 1; 35 | remoteGlobalIDString = 9A5BABCA6DDD5DEB8E4EC7AECD8E3B62; 36 | remoteInfo = "Pods-HorizontalParallaxScrollView_Example"; 37 | }; 38 | /* End PBXContainerItemProxy section */ 39 | 40 | /* Begin PBXFileReference section */ 41 | 119ABE8D232E995F4503C111A78DA0FB /* Pods_HorizontalParallaxScrollView_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_HorizontalParallaxScrollView_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 42 | 12FDE86625E57A958CF7F823C038C75A /* HorizontalParallaxScrollView.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; path = HorizontalParallaxScrollView.podspec; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 43 | 15BF4FECAB544A8BA98611D240E45A0F /* Pods-HorizontalParallaxScrollView_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-HorizontalParallaxScrollView_Example-umbrella.h"; sourceTree = ""; }; 44 | 37DB745CAFEEEBE9F12885A882003113 /* Pods-HorizontalParallaxScrollView_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-HorizontalParallaxScrollView_Tests.modulemap"; sourceTree = ""; }; 45 | 417EB27ADEC56D051CA0BB74F6660DFB /* Pods-HorizontalParallaxScrollView_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-HorizontalParallaxScrollView_Example-acknowledgements.plist"; sourceTree = ""; }; 46 | 455B8BE213F33511BE45A15B3E28C856 /* HorizontalParallaxScrollView.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = HorizontalParallaxScrollView.xcconfig; sourceTree = ""; }; 47 | 49ACCD617C5900387F99B865E57F3978 /* Pods-HorizontalParallaxScrollView_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-HorizontalParallaxScrollView_Example-acknowledgements.markdown"; sourceTree = ""; }; 48 | 5A16F4CFC63FAC439D7A04994F579A03 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; 49 | 6C119D34D5230165ABADA9B5F3F657E8 /* Pods-HorizontalParallaxScrollView_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-HorizontalParallaxScrollView_Example.release.xcconfig"; sourceTree = ""; }; 50 | 6EDD0A70C7738510DF17606C42CAF83B /* Pods-HorizontalParallaxScrollView_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-HorizontalParallaxScrollView_Tests-acknowledgements.markdown"; sourceTree = ""; }; 51 | 7A53064E3BB8DE026F04CCCB926AF273 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 52 | 8262A96D1A1E351BC7A0FCF46F62872F /* Pods-HorizontalParallaxScrollView_Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-HorizontalParallaxScrollView_Tests-frameworks.sh"; sourceTree = ""; }; 53 | 827E25090B5198BDFAE8545BFE52A9A4 /* HorizontalParallaxScrollView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "HorizontalParallaxScrollView-prefix.pch"; sourceTree = ""; }; 54 | 82A997B0F888DD328CD4B86A3237DCBD /* Pods-HorizontalParallaxScrollView_Example-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-HorizontalParallaxScrollView_Example-resources.sh"; sourceTree = ""; }; 55 | 87027A8BCBF8723671415C5E500253DF /* HorizontalParallaxScrollView.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = HorizontalParallaxScrollView.modulemap; sourceTree = ""; }; 56 | 8C14C95275631120FAE89F3449F7C6EE /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; 57 | 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 58 | 93A950880BEB537379EFDF93188BDBC4 /* Pods_HorizontalParallaxScrollView_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_HorizontalParallaxScrollView_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 59 | 96FF2F82967248CFA54AD574179AAEFF /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 60 | 9926654F5A5BF72A36E13FBAEC20E2D5 /* HorizontalParallaxScrollView.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = HorizontalParallaxScrollView.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 61 | 9CC00395D3E5636102A246E0AB02300E /* Pods-HorizontalParallaxScrollView_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-HorizontalParallaxScrollView_Tests.debug.xcconfig"; sourceTree = ""; }; 62 | A6A93B74F3028DE419D8D1ABA6BA0307 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 63 | B32A0464E71EA0D4E49698C70B4A5A78 /* Pods-HorizontalParallaxScrollView_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-HorizontalParallaxScrollView_Example.modulemap"; sourceTree = ""; }; 64 | C7906146BA3626C4FEB4604B44D63D5C /* Pods-HorizontalParallaxScrollView_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-HorizontalParallaxScrollView_Example.debug.xcconfig"; sourceTree = ""; }; 65 | D857479D6FB1ED20792082988DCAF664 /* Pods-HorizontalParallaxScrollView_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-HorizontalParallaxScrollView_Tests.release.xcconfig"; sourceTree = ""; }; 66 | DCACA5B89575619DBF8334C3F21B023F /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; 67 | DE83A8FB2171AD48008EF11C /* HorizontalParallaxScrollView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = HorizontalParallaxScrollView.swift; path = HorizontalParallaxScrollView/Classes/HorizontalParallaxScrollView.swift; sourceTree = ""; }; 68 | DE83A8FC2171AD48008EF11C /* HorizontalParallaxScrollViewItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = HorizontalParallaxScrollViewItem.swift; path = HorizontalParallaxScrollView/Classes/HorizontalParallaxScrollViewItem.swift; sourceTree = ""; }; 69 | ED495ED9804380774FFE7ADF68D38308 /* Pods-HorizontalParallaxScrollView_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-HorizontalParallaxScrollView_Example-frameworks.sh"; sourceTree = ""; }; 70 | EEFA7B29D65A024CA71F3BB538E453AA /* Pods-HorizontalParallaxScrollView_Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-HorizontalParallaxScrollView_Tests-resources.sh"; sourceTree = ""; }; 71 | EF3DF81B5F13299F5B62347528BDAE15 /* Pods-HorizontalParallaxScrollView_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-HorizontalParallaxScrollView_Tests-dummy.m"; sourceTree = ""; }; 72 | F337950E357A57C190A050D41B59C956 /* Pods-HorizontalParallaxScrollView_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-HorizontalParallaxScrollView_Tests-acknowledgements.plist"; sourceTree = ""; }; 73 | F3B1E99028EB7D6E4F0F57D59F4A61BD /* HorizontalParallaxScrollView-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "HorizontalParallaxScrollView-umbrella.h"; sourceTree = ""; }; 74 | FB596D78795104F069D7A9FD284F2C69 /* HorizontalParallaxScrollView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "HorizontalParallaxScrollView-dummy.m"; sourceTree = ""; }; 75 | FCDB9C0FF087CD8201307C4E77239066 /* Pods-HorizontalParallaxScrollView_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-HorizontalParallaxScrollView_Example-dummy.m"; sourceTree = ""; }; 76 | FF13937BE11380B3814ABF15E07F55D5 /* Pods-HorizontalParallaxScrollView_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-HorizontalParallaxScrollView_Tests-umbrella.h"; sourceTree = ""; }; 77 | /* End PBXFileReference section */ 78 | 79 | /* Begin PBXFrameworksBuildPhase section */ 80 | 01AB319320F9DF2F618AE52AA68C12DE /* Frameworks */ = { 81 | isa = PBXFrameworksBuildPhase; 82 | buildActionMask = 2147483647; 83 | files = ( 84 | 965FD29253B76343650F96891F08AC52 /* Foundation.framework in Frameworks */, 85 | ); 86 | runOnlyForDeploymentPostprocessing = 0; 87 | }; 88 | 7520E513176A70CB39AAEF3F591376A5 /* Frameworks */ = { 89 | isa = PBXFrameworksBuildPhase; 90 | buildActionMask = 2147483647; 91 | files = ( 92 | 9C5965C48C1719295A306E6148545DCC /* Foundation.framework in Frameworks */, 93 | ); 94 | runOnlyForDeploymentPostprocessing = 0; 95 | }; 96 | 9C3F5A6F5821459A4D385931909CDE95 /* Frameworks */ = { 97 | isa = PBXFrameworksBuildPhase; 98 | buildActionMask = 2147483647; 99 | files = ( 100 | 76D4B0110B18C2186336D2B5F54EC59F /* Foundation.framework in Frameworks */, 101 | ); 102 | runOnlyForDeploymentPostprocessing = 0; 103 | }; 104 | /* End PBXFrameworksBuildPhase section */ 105 | 106 | /* Begin PBXGroup section */ 107 | 1858AB501B5570D5F75EFBF5DACF89E7 /* Pods-HorizontalParallaxScrollView_Tests */ = { 108 | isa = PBXGroup; 109 | children = ( 110 | 96FF2F82967248CFA54AD574179AAEFF /* Info.plist */, 111 | 37DB745CAFEEEBE9F12885A882003113 /* Pods-HorizontalParallaxScrollView_Tests.modulemap */, 112 | 6EDD0A70C7738510DF17606C42CAF83B /* Pods-HorizontalParallaxScrollView_Tests-acknowledgements.markdown */, 113 | F337950E357A57C190A050D41B59C956 /* Pods-HorizontalParallaxScrollView_Tests-acknowledgements.plist */, 114 | EF3DF81B5F13299F5B62347528BDAE15 /* Pods-HorizontalParallaxScrollView_Tests-dummy.m */, 115 | 8262A96D1A1E351BC7A0FCF46F62872F /* Pods-HorizontalParallaxScrollView_Tests-frameworks.sh */, 116 | EEFA7B29D65A024CA71F3BB538E453AA /* Pods-HorizontalParallaxScrollView_Tests-resources.sh */, 117 | FF13937BE11380B3814ABF15E07F55D5 /* Pods-HorizontalParallaxScrollView_Tests-umbrella.h */, 118 | 9CC00395D3E5636102A246E0AB02300E /* Pods-HorizontalParallaxScrollView_Tests.debug.xcconfig */, 119 | D857479D6FB1ED20792082988DCAF664 /* Pods-HorizontalParallaxScrollView_Tests.release.xcconfig */, 120 | ); 121 | name = "Pods-HorizontalParallaxScrollView_Tests"; 122 | path = "Target Support Files/Pods-HorizontalParallaxScrollView_Tests"; 123 | sourceTree = ""; 124 | }; 125 | 3537FF2EC9B28361862D8244F830E5AA /* Pods-HorizontalParallaxScrollView_Example */ = { 126 | isa = PBXGroup; 127 | children = ( 128 | A6A93B74F3028DE419D8D1ABA6BA0307 /* Info.plist */, 129 | B32A0464E71EA0D4E49698C70B4A5A78 /* Pods-HorizontalParallaxScrollView_Example.modulemap */, 130 | 49ACCD617C5900387F99B865E57F3978 /* Pods-HorizontalParallaxScrollView_Example-acknowledgements.markdown */, 131 | 417EB27ADEC56D051CA0BB74F6660DFB /* Pods-HorizontalParallaxScrollView_Example-acknowledgements.plist */, 132 | FCDB9C0FF087CD8201307C4E77239066 /* Pods-HorizontalParallaxScrollView_Example-dummy.m */, 133 | ED495ED9804380774FFE7ADF68D38308 /* Pods-HorizontalParallaxScrollView_Example-frameworks.sh */, 134 | 82A997B0F888DD328CD4B86A3237DCBD /* Pods-HorizontalParallaxScrollView_Example-resources.sh */, 135 | 15BF4FECAB544A8BA98611D240E45A0F /* Pods-HorizontalParallaxScrollView_Example-umbrella.h */, 136 | C7906146BA3626C4FEB4604B44D63D5C /* Pods-HorizontalParallaxScrollView_Example.debug.xcconfig */, 137 | 6C119D34D5230165ABADA9B5F3F657E8 /* Pods-HorizontalParallaxScrollView_Example.release.xcconfig */, 138 | ); 139 | name = "Pods-HorizontalParallaxScrollView_Example"; 140 | path = "Target Support Files/Pods-HorizontalParallaxScrollView_Example"; 141 | sourceTree = ""; 142 | }; 143 | 5E0D919E635D23B70123790B8308F8EF /* iOS */ = { 144 | isa = PBXGroup; 145 | children = ( 146 | 5A16F4CFC63FAC439D7A04994F579A03 /* Foundation.framework */, 147 | ); 148 | name = iOS; 149 | sourceTree = ""; 150 | }; 151 | 7DB346D0F39D3F0E887471402A8071AB = { 152 | isa = PBXGroup; 153 | children = ( 154 | 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, 155 | D8F0A2FDAF7ED5D2E7B482A56EB07A75 /* Development Pods */, 156 | BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */, 157 | BEA4FB0F3301A336F8A8EFED2361CEA7 /* Products */, 158 | 84B9EAA4CE7E738D2E2D175A8E2B5281 /* Targets Support Files */, 159 | ); 160 | sourceTree = ""; 161 | }; 162 | 84B9EAA4CE7E738D2E2D175A8E2B5281 /* Targets Support Files */ = { 163 | isa = PBXGroup; 164 | children = ( 165 | 3537FF2EC9B28361862D8244F830E5AA /* Pods-HorizontalParallaxScrollView_Example */, 166 | 1858AB501B5570D5F75EFBF5DACF89E7 /* Pods-HorizontalParallaxScrollView_Tests */, 167 | ); 168 | name = "Targets Support Files"; 169 | sourceTree = ""; 170 | }; 171 | 96902D9F9ACE2ABE92CFBF06292C6643 /* HorizontalParallaxScrollView */ = { 172 | isa = PBXGroup; 173 | children = ( 174 | DE83A8FB2171AD48008EF11C /* HorizontalParallaxScrollView.swift */, 175 | DE83A8FC2171AD48008EF11C /* HorizontalParallaxScrollViewItem.swift */, 176 | B4020E92FF56CC2A9442F52EED495E8A /* Pod */, 177 | EED4B144F4F6F7460B1F90D776C393A5 /* Support Files */, 178 | ); 179 | name = HorizontalParallaxScrollView; 180 | path = ../..; 181 | sourceTree = ""; 182 | }; 183 | B4020E92FF56CC2A9442F52EED495E8A /* Pod */ = { 184 | isa = PBXGroup; 185 | children = ( 186 | 12FDE86625E57A958CF7F823C038C75A /* HorizontalParallaxScrollView.podspec */, 187 | 8C14C95275631120FAE89F3449F7C6EE /* LICENSE */, 188 | DCACA5B89575619DBF8334C3F21B023F /* README.md */, 189 | ); 190 | name = Pod; 191 | sourceTree = ""; 192 | }; 193 | BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = { 194 | isa = PBXGroup; 195 | children = ( 196 | 5E0D919E635D23B70123790B8308F8EF /* iOS */, 197 | ); 198 | name = Frameworks; 199 | sourceTree = ""; 200 | }; 201 | BEA4FB0F3301A336F8A8EFED2361CEA7 /* Products */ = { 202 | isa = PBXGroup; 203 | children = ( 204 | 9926654F5A5BF72A36E13FBAEC20E2D5 /* HorizontalParallaxScrollView.framework */, 205 | 119ABE8D232E995F4503C111A78DA0FB /* Pods_HorizontalParallaxScrollView_Example.framework */, 206 | 93A950880BEB537379EFDF93188BDBC4 /* Pods_HorizontalParallaxScrollView_Tests.framework */, 207 | ); 208 | name = Products; 209 | sourceTree = ""; 210 | }; 211 | D8F0A2FDAF7ED5D2E7B482A56EB07A75 /* Development Pods */ = { 212 | isa = PBXGroup; 213 | children = ( 214 | 96902D9F9ACE2ABE92CFBF06292C6643 /* HorizontalParallaxScrollView */, 215 | ); 216 | name = "Development Pods"; 217 | sourceTree = ""; 218 | }; 219 | EED4B144F4F6F7460B1F90D776C393A5 /* Support Files */ = { 220 | isa = PBXGroup; 221 | children = ( 222 | 87027A8BCBF8723671415C5E500253DF /* HorizontalParallaxScrollView.modulemap */, 223 | 455B8BE213F33511BE45A15B3E28C856 /* HorizontalParallaxScrollView.xcconfig */, 224 | FB596D78795104F069D7A9FD284F2C69 /* HorizontalParallaxScrollView-dummy.m */, 225 | 827E25090B5198BDFAE8545BFE52A9A4 /* HorizontalParallaxScrollView-prefix.pch */, 226 | F3B1E99028EB7D6E4F0F57D59F4A61BD /* HorizontalParallaxScrollView-umbrella.h */, 227 | 7A53064E3BB8DE026F04CCCB926AF273 /* Info.plist */, 228 | ); 229 | name = "Support Files"; 230 | path = "Example/Pods/Target Support Files/HorizontalParallaxScrollView"; 231 | sourceTree = ""; 232 | }; 233 | /* End PBXGroup section */ 234 | 235 | /* Begin PBXHeadersBuildPhase section */ 236 | 19EF0347CE70A3720275CDFADF04B9FB /* Headers */ = { 237 | isa = PBXHeadersBuildPhase; 238 | buildActionMask = 2147483647; 239 | files = ( 240 | 2E105058A343259D74CB3E7D483013B0 /* Pods-HorizontalParallaxScrollView_Example-umbrella.h in Headers */, 241 | ); 242 | runOnlyForDeploymentPostprocessing = 0; 243 | }; 244 | 4273836DA80979BBC7095682E468BE81 /* Headers */ = { 245 | isa = PBXHeadersBuildPhase; 246 | buildActionMask = 2147483647; 247 | files = ( 248 | 76FCCCB23711C2F05910F866E665054A /* HorizontalParallaxScrollView-umbrella.h in Headers */, 249 | ); 250 | runOnlyForDeploymentPostprocessing = 0; 251 | }; 252 | F02BE17DA1995FA3477A9E240E3071A6 /* Headers */ = { 253 | isa = PBXHeadersBuildPhase; 254 | buildActionMask = 2147483647; 255 | files = ( 256 | 2EC49DB7C885E26D63FBB7FF246E6DFA /* Pods-HorizontalParallaxScrollView_Tests-umbrella.h in Headers */, 257 | ); 258 | runOnlyForDeploymentPostprocessing = 0; 259 | }; 260 | /* End PBXHeadersBuildPhase section */ 261 | 262 | /* Begin PBXNativeTarget section */ 263 | 129E182CA485E113D647C50716DA3513 /* HorizontalParallaxScrollView */ = { 264 | isa = PBXNativeTarget; 265 | buildConfigurationList = ABB2F4AFE48EAD23D6FBEC6EA5E1AB3A /* Build configuration list for PBXNativeTarget "HorizontalParallaxScrollView" */; 266 | buildPhases = ( 267 | 2AC870A22EF58F7562772D62837AE4D3 /* Sources */, 268 | 01AB319320F9DF2F618AE52AA68C12DE /* Frameworks */, 269 | 4273836DA80979BBC7095682E468BE81 /* Headers */, 270 | ); 271 | buildRules = ( 272 | ); 273 | dependencies = ( 274 | ); 275 | name = HorizontalParallaxScrollView; 276 | productName = HorizontalParallaxScrollView; 277 | productReference = 9926654F5A5BF72A36E13FBAEC20E2D5 /* HorizontalParallaxScrollView.framework */; 278 | productType = "com.apple.product-type.framework"; 279 | }; 280 | 604B0F5AAD9228B5476B6B7A0B5C8BB5 /* Pods-HorizontalParallaxScrollView_Tests */ = { 281 | isa = PBXNativeTarget; 282 | buildConfigurationList = 5B2AD5056D4B274DFE4BC0AD26DE774D /* Build configuration list for PBXNativeTarget "Pods-HorizontalParallaxScrollView_Tests" */; 283 | buildPhases = ( 284 | 5709BE8EAFE2213109F80C97227D839D /* Sources */, 285 | 9C3F5A6F5821459A4D385931909CDE95 /* Frameworks */, 286 | F02BE17DA1995FA3477A9E240E3071A6 /* Headers */, 287 | ); 288 | buildRules = ( 289 | ); 290 | dependencies = ( 291 | 7E796CC8A2371EBBF4079FC1FF36617A /* PBXTargetDependency */, 292 | ); 293 | name = "Pods-HorizontalParallaxScrollView_Tests"; 294 | productName = "Pods-HorizontalParallaxScrollView_Tests"; 295 | productReference = 93A950880BEB537379EFDF93188BDBC4 /* Pods_HorizontalParallaxScrollView_Tests.framework */; 296 | productType = "com.apple.product-type.framework"; 297 | }; 298 | 9A5BABCA6DDD5DEB8E4EC7AECD8E3B62 /* Pods-HorizontalParallaxScrollView_Example */ = { 299 | isa = PBXNativeTarget; 300 | buildConfigurationList = 3009E911EFADD74BD9D24D8CFC0FF767 /* Build configuration list for PBXNativeTarget "Pods-HorizontalParallaxScrollView_Example" */; 301 | buildPhases = ( 302 | D0912254B1D652E947467FE8E078689E /* Sources */, 303 | 7520E513176A70CB39AAEF3F591376A5 /* Frameworks */, 304 | 19EF0347CE70A3720275CDFADF04B9FB /* Headers */, 305 | ); 306 | buildRules = ( 307 | ); 308 | dependencies = ( 309 | DA277CCED4865B11CAF6253FF288AB47 /* PBXTargetDependency */, 310 | ); 311 | name = "Pods-HorizontalParallaxScrollView_Example"; 312 | productName = "Pods-HorizontalParallaxScrollView_Example"; 313 | productReference = 119ABE8D232E995F4503C111A78DA0FB /* Pods_HorizontalParallaxScrollView_Example.framework */; 314 | productType = "com.apple.product-type.framework"; 315 | }; 316 | /* End PBXNativeTarget section */ 317 | 318 | /* Begin PBXProject section */ 319 | D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { 320 | isa = PBXProject; 321 | attributes = { 322 | LastSwiftUpdateCheck = 0930; 323 | LastUpgradeCheck = 0930; 324 | TargetAttributes = { 325 | 129E182CA485E113D647C50716DA3513 = { 326 | LastSwiftMigration = 1000; 327 | }; 328 | }; 329 | }; 330 | buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; 331 | compatibilityVersion = "Xcode 3.2"; 332 | developmentRegion = English; 333 | hasScannedForEncodings = 0; 334 | knownRegions = ( 335 | en, 336 | ); 337 | mainGroup = 7DB346D0F39D3F0E887471402A8071AB; 338 | productRefGroup = BEA4FB0F3301A336F8A8EFED2361CEA7 /* Products */; 339 | projectDirPath = ""; 340 | projectRoot = ""; 341 | targets = ( 342 | 129E182CA485E113D647C50716DA3513 /* HorizontalParallaxScrollView */, 343 | 9A5BABCA6DDD5DEB8E4EC7AECD8E3B62 /* Pods-HorizontalParallaxScrollView_Example */, 344 | 604B0F5AAD9228B5476B6B7A0B5C8BB5 /* Pods-HorizontalParallaxScrollView_Tests */, 345 | ); 346 | }; 347 | /* End PBXProject section */ 348 | 349 | /* Begin PBXSourcesBuildPhase section */ 350 | 2AC870A22EF58F7562772D62837AE4D3 /* Sources */ = { 351 | isa = PBXSourcesBuildPhase; 352 | buildActionMask = 2147483647; 353 | files = ( 354 | DE83A8FD2171AD48008EF11C /* HorizontalParallaxScrollView.swift in Sources */, 355 | D3EDA5ABD734609969809A14F4DB1853 /* HorizontalParallaxScrollView-dummy.m in Sources */, 356 | DE83A8FE2171AD48008EF11C /* HorizontalParallaxScrollViewItem.swift in Sources */, 357 | ); 358 | runOnlyForDeploymentPostprocessing = 0; 359 | }; 360 | 5709BE8EAFE2213109F80C97227D839D /* Sources */ = { 361 | isa = PBXSourcesBuildPhase; 362 | buildActionMask = 2147483647; 363 | files = ( 364 | 87AEEA4FCE3E4C263FB423E135D01D62 /* Pods-HorizontalParallaxScrollView_Tests-dummy.m in Sources */, 365 | ); 366 | runOnlyForDeploymentPostprocessing = 0; 367 | }; 368 | D0912254B1D652E947467FE8E078689E /* Sources */ = { 369 | isa = PBXSourcesBuildPhase; 370 | buildActionMask = 2147483647; 371 | files = ( 372 | FE01BC3701F4641C20A8FAEAC0B8EB83 /* Pods-HorizontalParallaxScrollView_Example-dummy.m in Sources */, 373 | ); 374 | runOnlyForDeploymentPostprocessing = 0; 375 | }; 376 | /* End PBXSourcesBuildPhase section */ 377 | 378 | /* Begin PBXTargetDependency section */ 379 | 7E796CC8A2371EBBF4079FC1FF36617A /* PBXTargetDependency */ = { 380 | isa = PBXTargetDependency; 381 | name = "Pods-HorizontalParallaxScrollView_Example"; 382 | target = 9A5BABCA6DDD5DEB8E4EC7AECD8E3B62 /* Pods-HorizontalParallaxScrollView_Example */; 383 | targetProxy = 844F5E82794D782000B020F78B7A8C8D /* PBXContainerItemProxy */; 384 | }; 385 | DA277CCED4865B11CAF6253FF288AB47 /* PBXTargetDependency */ = { 386 | isa = PBXTargetDependency; 387 | name = HorizontalParallaxScrollView; 388 | target = 129E182CA485E113D647C50716DA3513 /* HorizontalParallaxScrollView */; 389 | targetProxy = 7BB78FCB6B7C9EA759775F2346CB7AEC /* PBXContainerItemProxy */; 390 | }; 391 | /* End PBXTargetDependency section */ 392 | 393 | /* Begin XCBuildConfiguration section */ 394 | 1C58F1D8D49CB2A9AE6C3CF9F36C91AA /* Debug */ = { 395 | isa = XCBuildConfiguration; 396 | baseConfigurationReference = 455B8BE213F33511BE45A15B3E28C856 /* HorizontalParallaxScrollView.xcconfig */; 397 | buildSettings = { 398 | CLANG_ENABLE_MODULES = YES; 399 | CODE_SIGN_IDENTITY = ""; 400 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 401 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 402 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 403 | CURRENT_PROJECT_VERSION = 1; 404 | DEFINES_MODULE = YES; 405 | DYLIB_COMPATIBILITY_VERSION = 1; 406 | DYLIB_CURRENT_VERSION = 1; 407 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 408 | GCC_PREFIX_HEADER = "Target Support Files/HorizontalParallaxScrollView/HorizontalParallaxScrollView-prefix.pch"; 409 | INFOPLIST_FILE = "Target Support Files/HorizontalParallaxScrollView/Info.plist"; 410 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 411 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 412 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 413 | MODULEMAP_FILE = "Target Support Files/HorizontalParallaxScrollView/HorizontalParallaxScrollView.modulemap"; 414 | PRODUCT_MODULE_NAME = HorizontalParallaxScrollView; 415 | PRODUCT_NAME = HorizontalParallaxScrollView; 416 | SDKROOT = iphoneos; 417 | SKIP_INSTALL = YES; 418 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; 419 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 420 | SWIFT_VERSION = 4.0; 421 | TARGETED_DEVICE_FAMILY = "1,2"; 422 | VERSIONING_SYSTEM = "apple-generic"; 423 | VERSION_INFO_PREFIX = ""; 424 | }; 425 | name = Debug; 426 | }; 427 | 1EC7DF26D673AFE04AE5D3CFF00B803F /* Release */ = { 428 | isa = XCBuildConfiguration; 429 | baseConfigurationReference = 6C119D34D5230165ABADA9B5F3F657E8 /* Pods-HorizontalParallaxScrollView_Example.release.xcconfig */; 430 | buildSettings = { 431 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; 432 | CODE_SIGN_IDENTITY = ""; 433 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 434 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 435 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 436 | CURRENT_PROJECT_VERSION = 1; 437 | DEFINES_MODULE = YES; 438 | DYLIB_COMPATIBILITY_VERSION = 1; 439 | DYLIB_CURRENT_VERSION = 1; 440 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 441 | INFOPLIST_FILE = "Target Support Files/Pods-HorizontalParallaxScrollView_Example/Info.plist"; 442 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 443 | IPHONEOS_DEPLOYMENT_TARGET = 9.3; 444 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 445 | MACH_O_TYPE = staticlib; 446 | MODULEMAP_FILE = "Target Support Files/Pods-HorizontalParallaxScrollView_Example/Pods-HorizontalParallaxScrollView_Example.modulemap"; 447 | OTHER_LDFLAGS = ""; 448 | OTHER_LIBTOOLFLAGS = ""; 449 | PODS_ROOT = "$(SRCROOT)"; 450 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 451 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 452 | SDKROOT = iphoneos; 453 | SKIP_INSTALL = YES; 454 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; 455 | TARGETED_DEVICE_FAMILY = "1,2"; 456 | VALIDATE_PRODUCT = YES; 457 | VERSIONING_SYSTEM = "apple-generic"; 458 | VERSION_INFO_PREFIX = ""; 459 | }; 460 | name = Release; 461 | }; 462 | 2CA321B28D20CB5A5B980BD9BA9509F7 /* Release */ = { 463 | isa = XCBuildConfiguration; 464 | baseConfigurationReference = D857479D6FB1ED20792082988DCAF664 /* Pods-HorizontalParallaxScrollView_Tests.release.xcconfig */; 465 | buildSettings = { 466 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; 467 | CODE_SIGN_IDENTITY = ""; 468 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 469 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 470 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 471 | CURRENT_PROJECT_VERSION = 1; 472 | DEFINES_MODULE = YES; 473 | DYLIB_COMPATIBILITY_VERSION = 1; 474 | DYLIB_CURRENT_VERSION = 1; 475 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 476 | INFOPLIST_FILE = "Target Support Files/Pods-HorizontalParallaxScrollView_Tests/Info.plist"; 477 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 478 | IPHONEOS_DEPLOYMENT_TARGET = 9.3; 479 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 480 | MACH_O_TYPE = staticlib; 481 | MODULEMAP_FILE = "Target Support Files/Pods-HorizontalParallaxScrollView_Tests/Pods-HorizontalParallaxScrollView_Tests.modulemap"; 482 | OTHER_LDFLAGS = ""; 483 | OTHER_LIBTOOLFLAGS = ""; 484 | PODS_ROOT = "$(SRCROOT)"; 485 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 486 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 487 | SDKROOT = iphoneos; 488 | SKIP_INSTALL = YES; 489 | TARGETED_DEVICE_FAMILY = "1,2"; 490 | VALIDATE_PRODUCT = YES; 491 | VERSIONING_SYSTEM = "apple-generic"; 492 | VERSION_INFO_PREFIX = ""; 493 | }; 494 | name = Release; 495 | }; 496 | 339D224A8C0F30A18F7D1CD8C39CFA21 /* Release */ = { 497 | isa = XCBuildConfiguration; 498 | baseConfigurationReference = 455B8BE213F33511BE45A15B3E28C856 /* HorizontalParallaxScrollView.xcconfig */; 499 | buildSettings = { 500 | CLANG_ENABLE_MODULES = YES; 501 | CODE_SIGN_IDENTITY = ""; 502 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 503 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 504 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 505 | CURRENT_PROJECT_VERSION = 1; 506 | DEFINES_MODULE = YES; 507 | DYLIB_COMPATIBILITY_VERSION = 1; 508 | DYLIB_CURRENT_VERSION = 1; 509 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 510 | GCC_PREFIX_HEADER = "Target Support Files/HorizontalParallaxScrollView/HorizontalParallaxScrollView-prefix.pch"; 511 | INFOPLIST_FILE = "Target Support Files/HorizontalParallaxScrollView/Info.plist"; 512 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 513 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 514 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 515 | MODULEMAP_FILE = "Target Support Files/HorizontalParallaxScrollView/HorizontalParallaxScrollView.modulemap"; 516 | PRODUCT_MODULE_NAME = HorizontalParallaxScrollView; 517 | PRODUCT_NAME = HorizontalParallaxScrollView; 518 | SDKROOT = iphoneos; 519 | SKIP_INSTALL = YES; 520 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; 521 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; 522 | SWIFT_VERSION = 4.0; 523 | TARGETED_DEVICE_FAMILY = "1,2"; 524 | VALIDATE_PRODUCT = YES; 525 | VERSIONING_SYSTEM = "apple-generic"; 526 | VERSION_INFO_PREFIX = ""; 527 | }; 528 | name = Release; 529 | }; 530 | 8B33C5230DE4A9DFA6D8F46505DD7AF7 /* Debug */ = { 531 | isa = XCBuildConfiguration; 532 | buildSettings = { 533 | ALWAYS_SEARCH_USER_PATHS = NO; 534 | CLANG_ANALYZER_NONNULL = YES; 535 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 536 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 537 | CLANG_CXX_LIBRARY = "libc++"; 538 | CLANG_ENABLE_MODULES = YES; 539 | CLANG_ENABLE_OBJC_ARC = YES; 540 | CLANG_ENABLE_OBJC_WEAK = YES; 541 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 542 | CLANG_WARN_BOOL_CONVERSION = YES; 543 | CLANG_WARN_COMMA = YES; 544 | CLANG_WARN_CONSTANT_CONVERSION = YES; 545 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 546 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 547 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 548 | CLANG_WARN_EMPTY_BODY = YES; 549 | CLANG_WARN_ENUM_CONVERSION = YES; 550 | CLANG_WARN_INFINITE_RECURSION = YES; 551 | CLANG_WARN_INT_CONVERSION = YES; 552 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 553 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 554 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 555 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 556 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 557 | CLANG_WARN_STRICT_PROTOTYPES = YES; 558 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 559 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 560 | CLANG_WARN_UNREACHABLE_CODE = YES; 561 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 562 | CODE_SIGNING_ALLOWED = NO; 563 | CODE_SIGNING_REQUIRED = NO; 564 | COPY_PHASE_STRIP = NO; 565 | DEBUG_INFORMATION_FORMAT = dwarf; 566 | ENABLE_STRICT_OBJC_MSGSEND = YES; 567 | ENABLE_TESTABILITY = YES; 568 | GCC_C_LANGUAGE_STANDARD = gnu11; 569 | GCC_DYNAMIC_NO_PIC = NO; 570 | GCC_NO_COMMON_BLOCKS = YES; 571 | GCC_OPTIMIZATION_LEVEL = 0; 572 | GCC_PREPROCESSOR_DEFINITIONS = ( 573 | "POD_CONFIGURATION_DEBUG=1", 574 | "DEBUG=1", 575 | "$(inherited)", 576 | ); 577 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 578 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 579 | GCC_WARN_UNDECLARED_SELECTOR = YES; 580 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 581 | GCC_WARN_UNUSED_FUNCTION = YES; 582 | GCC_WARN_UNUSED_VARIABLE = YES; 583 | IPHONEOS_DEPLOYMENT_TARGET = 9.3; 584 | MTL_ENABLE_DEBUG_INFO = YES; 585 | ONLY_ACTIVE_ARCH = YES; 586 | PRODUCT_NAME = "$(TARGET_NAME)"; 587 | STRIP_INSTALLED_PRODUCT = NO; 588 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 589 | SYMROOT = "${SRCROOT}/../build"; 590 | }; 591 | name = Debug; 592 | }; 593 | 8E550FAD9C3794AF81D55F5B9A4B8ECF /* Debug */ = { 594 | isa = XCBuildConfiguration; 595 | baseConfigurationReference = 9CC00395D3E5636102A246E0AB02300E /* Pods-HorizontalParallaxScrollView_Tests.debug.xcconfig */; 596 | buildSettings = { 597 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; 598 | CODE_SIGN_IDENTITY = ""; 599 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 600 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 601 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 602 | CURRENT_PROJECT_VERSION = 1; 603 | DEFINES_MODULE = YES; 604 | DYLIB_COMPATIBILITY_VERSION = 1; 605 | DYLIB_CURRENT_VERSION = 1; 606 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 607 | INFOPLIST_FILE = "Target Support Files/Pods-HorizontalParallaxScrollView_Tests/Info.plist"; 608 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 609 | IPHONEOS_DEPLOYMENT_TARGET = 9.3; 610 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 611 | MACH_O_TYPE = staticlib; 612 | MODULEMAP_FILE = "Target Support Files/Pods-HorizontalParallaxScrollView_Tests/Pods-HorizontalParallaxScrollView_Tests.modulemap"; 613 | OTHER_LDFLAGS = ""; 614 | OTHER_LIBTOOLFLAGS = ""; 615 | PODS_ROOT = "$(SRCROOT)"; 616 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 617 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 618 | SDKROOT = iphoneos; 619 | SKIP_INSTALL = YES; 620 | TARGETED_DEVICE_FAMILY = "1,2"; 621 | VERSIONING_SYSTEM = "apple-generic"; 622 | VERSION_INFO_PREFIX = ""; 623 | }; 624 | name = Debug; 625 | }; 626 | ABB89982AC03C032E9902EB9D56D73E8 /* Debug */ = { 627 | isa = XCBuildConfiguration; 628 | baseConfigurationReference = C7906146BA3626C4FEB4604B44D63D5C /* Pods-HorizontalParallaxScrollView_Example.debug.xcconfig */; 629 | buildSettings = { 630 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; 631 | CODE_SIGN_IDENTITY = ""; 632 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 633 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 634 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 635 | CURRENT_PROJECT_VERSION = 1; 636 | DEFINES_MODULE = YES; 637 | DYLIB_COMPATIBILITY_VERSION = 1; 638 | DYLIB_CURRENT_VERSION = 1; 639 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 640 | INFOPLIST_FILE = "Target Support Files/Pods-HorizontalParallaxScrollView_Example/Info.plist"; 641 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 642 | IPHONEOS_DEPLOYMENT_TARGET = 9.3; 643 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 644 | MACH_O_TYPE = staticlib; 645 | MODULEMAP_FILE = "Target Support Files/Pods-HorizontalParallaxScrollView_Example/Pods-HorizontalParallaxScrollView_Example.modulemap"; 646 | OTHER_LDFLAGS = ""; 647 | OTHER_LIBTOOLFLAGS = ""; 648 | PODS_ROOT = "$(SRCROOT)"; 649 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 650 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 651 | SDKROOT = iphoneos; 652 | SKIP_INSTALL = YES; 653 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 654 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 655 | TARGETED_DEVICE_FAMILY = "1,2"; 656 | VERSIONING_SYSTEM = "apple-generic"; 657 | VERSION_INFO_PREFIX = ""; 658 | }; 659 | name = Debug; 660 | }; 661 | B42B54097A876E8A982CBF5DAA91B1AB /* Release */ = { 662 | isa = XCBuildConfiguration; 663 | buildSettings = { 664 | ALWAYS_SEARCH_USER_PATHS = NO; 665 | CLANG_ANALYZER_NONNULL = YES; 666 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 667 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 668 | CLANG_CXX_LIBRARY = "libc++"; 669 | CLANG_ENABLE_MODULES = YES; 670 | CLANG_ENABLE_OBJC_ARC = YES; 671 | CLANG_ENABLE_OBJC_WEAK = YES; 672 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 673 | CLANG_WARN_BOOL_CONVERSION = YES; 674 | CLANG_WARN_COMMA = YES; 675 | CLANG_WARN_CONSTANT_CONVERSION = YES; 676 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 677 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 678 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 679 | CLANG_WARN_EMPTY_BODY = YES; 680 | CLANG_WARN_ENUM_CONVERSION = YES; 681 | CLANG_WARN_INFINITE_RECURSION = YES; 682 | CLANG_WARN_INT_CONVERSION = YES; 683 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 684 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 685 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 686 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 687 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 688 | CLANG_WARN_STRICT_PROTOTYPES = YES; 689 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 690 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 691 | CLANG_WARN_UNREACHABLE_CODE = YES; 692 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 693 | CODE_SIGNING_ALLOWED = NO; 694 | CODE_SIGNING_REQUIRED = NO; 695 | COPY_PHASE_STRIP = NO; 696 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 697 | ENABLE_NS_ASSERTIONS = NO; 698 | ENABLE_STRICT_OBJC_MSGSEND = YES; 699 | GCC_C_LANGUAGE_STANDARD = gnu11; 700 | GCC_NO_COMMON_BLOCKS = YES; 701 | GCC_PREPROCESSOR_DEFINITIONS = ( 702 | "POD_CONFIGURATION_RELEASE=1", 703 | "$(inherited)", 704 | ); 705 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 706 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 707 | GCC_WARN_UNDECLARED_SELECTOR = YES; 708 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 709 | GCC_WARN_UNUSED_FUNCTION = YES; 710 | GCC_WARN_UNUSED_VARIABLE = YES; 711 | IPHONEOS_DEPLOYMENT_TARGET = 9.3; 712 | MTL_ENABLE_DEBUG_INFO = NO; 713 | PRODUCT_NAME = "$(TARGET_NAME)"; 714 | STRIP_INSTALLED_PRODUCT = NO; 715 | SYMROOT = "${SRCROOT}/../build"; 716 | }; 717 | name = Release; 718 | }; 719 | /* End XCBuildConfiguration section */ 720 | 721 | /* Begin XCConfigurationList section */ 722 | 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { 723 | isa = XCConfigurationList; 724 | buildConfigurations = ( 725 | 8B33C5230DE4A9DFA6D8F46505DD7AF7 /* Debug */, 726 | B42B54097A876E8A982CBF5DAA91B1AB /* Release */, 727 | ); 728 | defaultConfigurationIsVisible = 0; 729 | defaultConfigurationName = Release; 730 | }; 731 | 3009E911EFADD74BD9D24D8CFC0FF767 /* Build configuration list for PBXNativeTarget "Pods-HorizontalParallaxScrollView_Example" */ = { 732 | isa = XCConfigurationList; 733 | buildConfigurations = ( 734 | ABB89982AC03C032E9902EB9D56D73E8 /* Debug */, 735 | 1EC7DF26D673AFE04AE5D3CFF00B803F /* Release */, 736 | ); 737 | defaultConfigurationIsVisible = 0; 738 | defaultConfigurationName = Release; 739 | }; 740 | 5B2AD5056D4B274DFE4BC0AD26DE774D /* Build configuration list for PBXNativeTarget "Pods-HorizontalParallaxScrollView_Tests" */ = { 741 | isa = XCConfigurationList; 742 | buildConfigurations = ( 743 | 8E550FAD9C3794AF81D55F5B9A4B8ECF /* Debug */, 744 | 2CA321B28D20CB5A5B980BD9BA9509F7 /* Release */, 745 | ); 746 | defaultConfigurationIsVisible = 0; 747 | defaultConfigurationName = Release; 748 | }; 749 | ABB2F4AFE48EAD23D6FBEC6EA5E1AB3A /* Build configuration list for PBXNativeTarget "HorizontalParallaxScrollView" */ = { 750 | isa = XCConfigurationList; 751 | buildConfigurations = ( 752 | 1C58F1D8D49CB2A9AE6C3CF9F36C91AA /* Debug */, 753 | 339D224A8C0F30A18F7D1CD8C39CFA21 /* Release */, 754 | ); 755 | defaultConfigurationIsVisible = 0; 756 | defaultConfigurationName = Release; 757 | }; 758 | /* End XCConfigurationList section */ 759 | }; 760 | rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */; 761 | } 762 | --------------------------------------------------------------------------------