├── SlidingText ├── Assets │ └── .gitkeep └── Classes │ ├── .gitkeep │ └── SlidingText.swift ├── _Pods.xcodeproj ├── Example ├── Podfile ├── Pods │ ├── Pods.xcodeproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ └── project.pbxproj │ ├── Target Support Files │ │ ├── SlidingText │ │ │ ├── SlidingText.modulemap │ │ │ ├── SlidingText-dummy.m │ │ │ ├── SlidingText-prefix.pch │ │ │ ├── SlidingText-umbrella.h │ │ │ ├── SlidingText.xcconfig │ │ │ └── Info.plist │ │ └── Pods-SlidingText_Tests │ │ │ ├── Pods-SlidingText_Tests.modulemap │ │ │ ├── Pods-SlidingText_Tests-dummy.m │ │ │ ├── Pods-SlidingText_Tests-umbrella.h │ │ │ ├── Pods-SlidingText_Tests.debug.xcconfig │ │ │ ├── Pods-SlidingText_Tests.release.xcconfig │ │ │ ├── Info.plist │ │ │ ├── Pods-SlidingText_Tests-acknowledgements.markdown │ │ │ ├── Pods-SlidingText_Tests-acknowledgements.plist │ │ │ ├── Pods-SlidingText_Tests-resources.sh │ │ │ └── Pods-SlidingText_Tests-frameworks.sh │ ├── Manifest.lock │ └── Local Podspecs │ │ └── SlidingText.podspec.json ├── SlidingText.xcodeproj │ ├── project.xcworkspace │ │ └── contents.xcworkspacedata │ ├── xcshareddata │ │ └── xcschemes │ │ │ └── SlidingText-Example.xcscheme │ └── project.pbxproj ├── SlidingText.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── Podfile.lock └── Tests │ ├── Info.plist │ └── Tests.swift ├── .travis.yml ├── .gitignore ├── SlidingText.podspec ├── README.md └── LICENSE /SlidingText/Assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /SlidingText/Classes/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /_Pods.xcodeproj: -------------------------------------------------------------------------------- 1 | Example/Pods/Pods.xcodeproj -------------------------------------------------------------------------------- /Example/Podfile: -------------------------------------------------------------------------------- 1 | use_frameworks! 2 | target 'SlidingText_Tests' do 3 | pod 'SlidingText', :path => '../' 4 | 5 | 6 | end 7 | -------------------------------------------------------------------------------- /Example/Pods/Pods.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/SlidingText/SlidingText.modulemap: -------------------------------------------------------------------------------- 1 | framework module SlidingText { 2 | umbrella header "SlidingText-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/SlidingText/SlidingText-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_SlidingText : NSObject 3 | @end 4 | @implementation PodsDummy_SlidingText 5 | @end 6 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-SlidingText_Tests/Pods-SlidingText_Tests.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_SlidingText_Tests { 2 | umbrella header "Pods-SlidingText_Tests-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-SlidingText_Tests/Pods-SlidingText_Tests-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_SlidingText_Tests : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_SlidingText_Tests 5 | @end 6 | -------------------------------------------------------------------------------- /Example/SlidingText.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/SlidingText/SlidingText-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/SlidingText.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Example/SlidingText.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Example/Pods/Pods.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Example/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - SlidingText (0.1.0) 3 | 4 | DEPENDENCIES: 5 | - SlidingText (from `../`) 6 | 7 | EXTERNAL SOURCES: 8 | SlidingText: 9 | :path: "../" 10 | 11 | SPEC CHECKSUMS: 12 | SlidingText: a38513b9170fe2cad18e2a7e66055cde2520d154 13 | 14 | PODFILE CHECKSUM: 78a23bad5f11fb283d5266d31e6d4f850892e5e7 15 | 16 | COCOAPODS: 1.5.3 17 | -------------------------------------------------------------------------------- /Example/Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - SlidingText (0.1.0) 3 | 4 | DEPENDENCIES: 5 | - SlidingText (from `../`) 6 | 7 | EXTERNAL SOURCES: 8 | SlidingText: 9 | :path: "../" 10 | 11 | SPEC CHECKSUMS: 12 | SlidingText: a38513b9170fe2cad18e2a7e66055cde2520d154 13 | 14 | PODFILE CHECKSUM: 78a23bad5f11fb283d5266d31e6d4f850892e5e7 15 | 16 | COCOAPODS: 1.5.3 17 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/SlidingText/SlidingText-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 SlidingTextVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char SlidingTextVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-SlidingText_Tests/Pods-SlidingText_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_SlidingText_TestsVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_SlidingText_TestsVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/SlidingText/SlidingText.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SlidingText 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 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | # references: 2 | # * https://www.objc.io/issues/6-build-tools/travis-ci/ 3 | # * https://github.com/supermarin/xcpretty#usage 4 | 5 | osx_image: xcode7.3 6 | language: objective-c 7 | # cache: cocoapods 8 | # podfile: Example/Podfile 9 | # before_install: 10 | # - gem install cocoapods # Since Travis is not always on latest version 11 | # - pod install --project-directory=Example 12 | script: 13 | - set -o pipefail && xcodebuild test -enableCodeCoverage YES -workspace Example/SlidingText.xcworkspace -scheme SlidingText-Example -sdk iphonesimulator9.3 ONLY_ACTIVE_ARCH=NO | xcpretty 14 | - pod lib lint 15 | -------------------------------------------------------------------------------- /Example/Pods/Local Podspecs/SlidingText.podspec.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "SlidingText", 3 | "version": "0.1.0", 4 | "summary": "A short description of SlidingText.", 5 | "description": "TODO: Add long description of the pod here.", 6 | "homepage": "https://github.com/Dionysis Karatzas/SlidingText", 7 | "license": { 8 | "type": "MIT", 9 | "file": "LICENSE" 10 | }, 11 | "authors": { 12 | "Dionysis Karatzas": "dnkaratzas@gmail.com" 13 | }, 14 | "source": { 15 | "git": "https://github.com/Dionysis Karatzas/SlidingText.git", 16 | "tag": "0.1.0" 17 | }, 18 | "platforms": { 19 | "ios": "8.0" 20 | }, 21 | "source_files": "SlidingText/Classes/**/*" 22 | } 23 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-SlidingText_Tests/Pods-SlidingText_Tests.debug.xcconfig: -------------------------------------------------------------------------------- 1 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SlidingText" 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}/SlidingText/SlidingText.framework/Headers" 6 | OTHER_LDFLAGS = $(inherited) -framework "SlidingText" 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-SlidingText_Tests/Pods-SlidingText_Tests.release.xcconfig: -------------------------------------------------------------------------------- 1 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/SlidingText" 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}/SlidingText/SlidingText.framework/Headers" 6 | OTHER_LDFLAGS = $(inherited) -framework "SlidingText" 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/Tests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Example/Tests/Tests.swift: -------------------------------------------------------------------------------- 1 | import XCTest 2 | import SlidingText 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 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # OS X 2 | .DS_Store 3 | 4 | # Xcode 5 | build/ 6 | *.pbxuser 7 | !default.pbxuser 8 | *.mode1v3 9 | !default.mode1v3 10 | *.mode2v3 11 | !default.mode2v3 12 | *.perspectivev3 13 | !default.perspectivev3 14 | xcuserdata/ 15 | *.xccheckout 16 | profile 17 | *.moved-aside 18 | DerivedData 19 | *.hmap 20 | *.ipa 21 | 22 | # Bundler 23 | .bundle 24 | 25 | # Add this line if you want to avoid checking in source code from Carthage dependencies. 26 | # Carthage/Checkouts 27 | 28 | Carthage/Build 29 | 30 | # We recommend against adding the Pods directory to your .gitignore. However 31 | # you should judge for yourself, the pros and cons are mentioned at: 32 | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control 33 | # 34 | # Note: if you ignore the Pods directory, make sure to uncomment 35 | # `pod install` in .travis.yml 36 | # 37 | # Pods/ 38 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/SlidingText/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 0.1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-SlidingText_Tests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-SlidingText_Tests/Pods-SlidingText_Tests-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | 4 | ## SlidingText 5 | 6 | Copyright (c) 2018 Dionysis Karatzas 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 | -------------------------------------------------------------------------------- /SlidingText.podspec: -------------------------------------------------------------------------------- 1 | # 2 | # Be sure to run `pod lib lint SlidingText.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 = 'SlidingText' 11 | s.version = '1.0.3' 12 | s.summary = 'Swift UIView for sliding text with page indicator.' 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 = <<-DESC 21 | An UIVIew control for sliding text with page indicator built upon UIKitDynamic using Swift. Simple and effecient. \n 22 | DESC 23 | 24 | s.homepage = 'https://github.com/dnKaratzas/SlidingText' 25 | #s.screenshots = 'https://image.ibb.co/ixmtJv/Sliding_Text.gif', 'https://image.ibb.co/dJ8Jka/Sliding_Text.png', 'https://image.ibb.co/iDy7dv/Sliding_Text2.png' 26 | s.license = { :type => 'Apache', :file => 'LICENSE' } 27 | s.author = { 'Dionysis Karatzas' => 'dkaratzas@hotmail.com' } 28 | s.source = { :git => 'https://github.com/dnKaratzas/SlidingText.git', :tag => s.version.to_s } 29 | # s.social_media_url = 'https://twitter.com/' 30 | 31 | s.ios.deployment_target = '8.0' 32 | 33 | s.source_files = 'SlidingText/Classes/*' 34 | s.swift_version = '4.2' 35 | # s.resource_bundles = { 36 | # 'SlidingText' => ['SlidingText/Assets/*.png'] 37 | # } 38 | 39 | # s.public_header_files = 'Pod/Classes/**/*.h' 40 | # s.frameworks = 'UIKit', 'MapKit' 41 | # s.dependency 'AFNetworking', '~> 2.3' 42 | end 43 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SlidingText for Swift 2 | 3 | [![Version](https://img.shields.io/cocoapods/v/SlidingText.svg?style=flat)](https://cocoapods.org/pods/SlidingText) 4 | [![License](https://img.shields.io/cocoapods/l/SlidingText.svg?style=flat)](https://cocoapods.org/pods/SlidingText) 5 | [![Platform](https://img.shields.io/cocoapods/p/SlidingText.svg?style=flat)](https://cocoapods.org/pods/SlidingText) 6 | 7 |

8 | 9 |

10 | 11 | ## Requirements 12 | __Requires iOS 8 or later and Xcode 6.1+__
13 | 14 | ## Installation 15 | 16 | SlidingText is available through [CocoaPods](https://cocoapods.org). To install 17 | it, simply add the following line to your Podfile: 18 | 19 | ```ruby 20 | pod 'SlidingText' 21 | ``` 22 | 23 | ## Usage with Storyboard 24 | In Identity Inspector, connect the UIView to SlidingText Class and set the properties in Attribute Inspector. 25 | 26 | 27 | 28 | ``` 29 | Text is separated by the '|n' delimiter 30 | ``` 31 | 32 | 33 | 34 | ## Usage with Code 35 | ```swift 36 | let slidingText = SlidingText(frame: CGRect(x: 0, y: 30, width: self.view.frame.width, height: 120)) 37 | 38 | myAwesomeViewController.view.addSubView = slidingText 39 | 40 | ... 41 | 42 | ``` 43 | 44 | ## Functions 45 | start() 46 | pause() 47 | 48 | ## Properties 49 | labelColor 50 | labelFont 51 | labelSize 52 | slidingTexts 53 | pagerTintColor 54 | pagerCurrentColor 55 | timeToSlide 56 | enableGestures 57 | isPaused (Get) 58 | currentIndex (Get) 59 | 60 | ## Author 61 | 62 | Dionysis Karatzas, dkaratzas@hotmail.com 63 | 64 | ## License 65 | 66 | Copyright 2018 Dionysios Karatzas 67 | 68 | Licensed under the Apache License, Version 2.0 (the "License"); 69 | you may not use this file except in compliance with the License. 70 | You may obtain a copy of the License at 71 | 72 | http://www.apache.org/licenses/LICENSE-2.0 73 | 74 | Unless required by applicable law or agreed to in writing, software 75 | distributed under the License is distributed on an "AS IS" BASIS, 76 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 77 | See the License for the specific language governing permissions and 78 | limitations under the License. 79 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-SlidingText_Tests/Pods-SlidingText_Tests-acknowledgements.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreferenceSpecifiers 6 | 7 | 8 | FooterText 9 | This application makes use of the following third party libraries: 10 | Title 11 | Acknowledgements 12 | Type 13 | PSGroupSpecifier 14 | 15 | 16 | FooterText 17 | Copyright (c) 2018 Dionysis Karatzas <dnkaratzas@gmail.com> 18 | 19 | Permission is hereby granted, free of charge, to any person obtaining a copy 20 | of this software and associated documentation files (the "Software"), to deal 21 | in the Software without restriction, including without limitation the rights 22 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 23 | copies of the Software, and to permit persons to whom the Software is 24 | furnished to do so, subject to the following conditions: 25 | 26 | The above copyright notice and this permission notice shall be included in 27 | all copies or substantial portions of the Software. 28 | 29 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 30 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 31 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 32 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 33 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 34 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 35 | THE SOFTWARE. 36 | 37 | License 38 | MIT 39 | Title 40 | SlidingText 41 | Type 42 | PSGroupSpecifier 43 | 44 | 45 | FooterText 46 | Generated by CocoaPods - https://cocoapods.org 47 | Title 48 | 49 | Type 50 | PSGroupSpecifier 51 | 52 | 53 | StringsTable 54 | Acknowledgements 55 | Title 56 | Acknowledgements 57 | 58 | 59 | -------------------------------------------------------------------------------- /Example/SlidingText.xcodeproj/xcshareddata/xcschemes/SlidingText-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 | -------------------------------------------------------------------------------- /Example/Pods/Target Support Files/Pods-SlidingText_Tests/Pods-SlidingText_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-SlidingText_Tests/Pods-SlidingText_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 | 145 | if [[ "$CONFIGURATION" == "Debug" ]]; then 146 | install_framework "${BUILT_PRODUCTS_DIR}/SlidingText/SlidingText.framework" 147 | fi 148 | if [[ "$CONFIGURATION" == "Release" ]]; then 149 | install_framework "${BUILT_PRODUCTS_DIR}/SlidingText/SlidingText.framework" 150 | fi 151 | if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then 152 | wait 153 | fi 154 | -------------------------------------------------------------------------------- /SlidingText/Classes/SlidingText.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SlidingText.swift 3 | // SlidingText 4 | // 5 | // Created by Dionisis Karatzas on 19/11/2018. 6 | // 7 | 8 | import UIKit 9 | 10 | @IBDesignable 11 | class SlidingText : UIView{ 12 | 13 | private var pageControl : UIPageControl = UIPageControl(frame: CGRect(x: 0,y: 0,width: 50,height: 20)) 14 | private var label : UILabel = UILabel(frame: CGRect(x: 0,y: 0,width: 50,height: 20)) 15 | private var texts : [String] = ["Add your texts seperated by '|n'"] 16 | 17 | private(set) var isPaused: Bool = false 18 | private(set) var currentIndex = 0 19 | private var timer : Timer? 20 | 21 | @IBInspectable var labelColor: UIColor = UIColor.black { 22 | didSet { 23 | label.textColor = labelColor 24 | } 25 | } 26 | 27 | @IBInspectable var labelSize: CGFloat = CGFloat(17.0){ 28 | didSet{ 29 | label.font = UIFont(name: labelFont, size: labelSize) 30 | } 31 | } 32 | @IBInspectable var labelFont: String = "Avenir Next"{ 33 | didSet { 34 | label.font = UIFont(name: labelFont, size: labelSize) 35 | } 36 | } 37 | 38 | @IBInspectable var labelTexts: String = "" { 39 | didSet { 40 | texts = labelTexts.components(separatedBy: "|n") 41 | label.text = texts[0] 42 | pageControl.numberOfPages = texts.count 43 | 44 | var i = 0 45 | // remove leading newline/whitespace characters 46 | for text in texts { 47 | let trimmed = text.replacingOccurrences(of: "^\\s*", with: "", options: .regularExpression) 48 | texts[i] = trimmed 49 | i+=1 50 | } 51 | } 52 | } 53 | 54 | @IBInspectable var pagerTintColor: UIColor = UIColor.black { 55 | didSet { 56 | pageControl.pageIndicatorTintColor = self.pagerTintColor 57 | } 58 | } 59 | 60 | @IBInspectable var pagerCurrentColor: UIColor = UIColor.green { 61 | didSet { 62 | pageControl.currentPageIndicatorTintColor = self.pagerCurrentColor 63 | } 64 | } 65 | 66 | 67 | 68 | @IBInspectable var timeToSlide: Double = 4.0 { 69 | didSet { 70 | timer?.invalidate() 71 | startOrResumeTimer() 72 | } 73 | } 74 | 75 | @IBInspectable var enableGestures: Bool = false { 76 | didSet { 77 | if enableGestures{ 78 | configureGestures() 79 | } 80 | else{ 81 | self.gestureRecognizers?.forEach(self.removeGestureRecognizer) 82 | } 83 | } 84 | } 85 | 86 | required init?(coder aDecoder: NSCoder) { 87 | super.init(coder: aDecoder) 88 | configureLabel() 89 | configurePageControl() 90 | startOrResumeTimer() 91 | } 92 | 93 | override init(frame: CGRect) { 94 | super.init(frame: frame) 95 | configureLabel() 96 | configurePageControl() 97 | startOrResumeTimer() 98 | } 99 | 100 | private func configureGestures(){ 101 | let swipeRight = UISwipeGestureRecognizer(target: self, action: #selector(self.respondToSwipeGesture)) 102 | swipeRight.direction = UISwipeGestureRecognizer.Direction.right 103 | self.addGestureRecognizer(swipeRight) 104 | 105 | let swipeLeft = UISwipeGestureRecognizer(target: self, action: #selector(self.respondToSwipeGesture)) 106 | swipeLeft.direction = UISwipeGestureRecognizer.Direction.left 107 | self.addGestureRecognizer(swipeLeft) 108 | } 109 | 110 | private func configureLabel() { 111 | label.text = texts[0] 112 | label.autoresizingMask = [.flexibleWidth, .flexibleHeight] 113 | label.translatesAutoresizingMaskIntoConstraints = false 114 | label.textAlignment = .center 115 | label.numberOfLines = 0 116 | label.font = UIFont(name: labelFont, size: labelSize) 117 | 118 | self.addSubview(label) 119 | 120 | let horizontalConstraint = NSLayoutConstraint(item: label, attribute: NSLayoutConstraint.Attribute.centerX, relatedBy: NSLayoutConstraint.Relation.equal, toItem: self, attribute: NSLayoutConstraint.Attribute.centerX, multiplier: 1, constant: 0) 121 | let verticalConstraint = NSLayoutConstraint(item: label, attribute: NSLayoutConstraint.Attribute.top, relatedBy: NSLayoutConstraint.Relation.equal, toItem: self, attribute: NSLayoutConstraint.Attribute.top, multiplier: 1, constant: 10) 122 | let trailingConstraint = NSLayoutConstraint(item: self, attribute: NSLayoutConstraint.Attribute.trailingMargin, relatedBy: NSLayoutConstraint.Relation.equal, toItem: label, attribute: NSLayoutConstraint.Attribute.trailing, multiplier: 1, constant: 0) 123 | let leadingConstraint = NSLayoutConstraint(item: label, attribute: NSLayoutConstraint.Attribute.leading, relatedBy: NSLayoutConstraint.Relation.equal, toItem: self, attribute: NSLayoutConstraint.Attribute.leadingMargin, multiplier: 1, constant: 0) 124 | 125 | 126 | NSLayoutConstraint.activate([horizontalConstraint, verticalConstraint, trailingConstraint, leadingConstraint]) 127 | } 128 | 129 | private func configurePageControl() { 130 | pageControl.numberOfPages = 1 131 | pageControl.currentPage = 0 132 | pageControl.pageIndicatorTintColor = pagerTintColor 133 | pageControl.currentPageIndicatorTintColor = pagerCurrentColor 134 | 135 | pageControl.autoresizingMask = [.flexibleWidth, .flexibleHeight] 136 | pageControl.translatesAutoresizingMaskIntoConstraints = false 137 | 138 | addSubview(pageControl) 139 | 140 | let horizontalConstraint = NSLayoutConstraint(item: pageControl, attribute: NSLayoutConstraint.Attribute.centerX, relatedBy: NSLayoutConstraint.Relation.equal, toItem: self, attribute: NSLayoutConstraint.Attribute.centerX, multiplier: 1, constant: 0) 141 | let verticalConstraint = NSLayoutConstraint(item: self, attribute: NSLayoutConstraint.Attribute.bottom, relatedBy: NSLayoutConstraint.Relation.equal, toItem: pageControl, attribute: NSLayoutConstraint.Attribute.bottom, multiplier: 1, constant: 10) 142 | 143 | 144 | NSLayoutConstraint.activate([horizontalConstraint, verticalConstraint]) 145 | } 146 | 147 | public func pause(){ 148 | timer?.invalidate() 149 | isPaused = true 150 | } 151 | 152 | public func start(){ 153 | startOrResumeTimer() 154 | } 155 | 156 | public var slidingTexts: [String]{ 157 | get{ 158 | return texts 159 | } 160 | set{ 161 | texts = newValue 162 | label.text = texts[0] 163 | pageControl.numberOfPages = texts.count 164 | 165 | var i = 0 166 | // remove leading newline/whitespace characters 167 | for text in texts { 168 | let trimmed = text.replacingOccurrences(of: "^\\s*", with: "", options: .regularExpression) 169 | texts[i] = trimmed 170 | i+=1 171 | } 172 | } 173 | } 174 | 175 | 176 | private func startOrResumeTimer() { 177 | timer = Timer.scheduledTimer(timeInterval: timeToSlide, target: self, selector: #selector(self.timersJob), userInfo: nil, repeats: true) 178 | isPaused = false 179 | 180 | } 181 | 182 | @objc private func timersJob(){ 183 | self.currentIndex += 1 184 | if self.currentIndex == self.texts.count{ 185 | self.currentIndex = 0 186 | } 187 | 188 | self.label.pushTransition(duration: 0.5, animationSubType: convertFromCATransitionSubtype(CATransitionSubtype.fromRight)) 189 | self.label.text = self.texts[self.currentIndex] 190 | 191 | self.pageControl.currentPage = self.currentIndex 192 | } 193 | 194 | @objc private func respondToSwipeGesture(gesture: UIGestureRecognizer) { 195 | 196 | if let swipeGesture = gesture as? UISwipeGestureRecognizer { 197 | switch swipeGesture.direction { 198 | case UISwipeGestureRecognizer.Direction.right: 199 | timer?.invalidate() 200 | currentIndex -= 1 201 | if currentIndex < 0{ 202 | currentIndex = texts.count - 1 203 | } 204 | 205 | label.pushTransition(duration: 0.5, animationSubType: convertFromCATransitionSubtype(CATransitionSubtype.fromLeft)) 206 | label.text = self.texts[currentIndex] 207 | 208 | pageControl.currentPage = currentIndex 209 | startOrResumeTimer() 210 | case UISwipeGestureRecognizer.Direction.down: 211 | break 212 | case UISwipeGestureRecognizer.Direction.left: 213 | timer?.invalidate() 214 | currentIndex += 1 215 | if currentIndex == texts.count{ 216 | currentIndex = 0 217 | } 218 | 219 | label.pushTransition(duration: 0.5, animationSubType: convertFromCATransitionSubtype(CATransitionSubtype.fromRight)) 220 | label.text = self.texts[currentIndex] 221 | 222 | pageControl.currentPage = self.currentIndex 223 | startOrResumeTimer() 224 | case UISwipeGestureRecognizer.Direction.up: 225 | break 226 | default: 227 | break 228 | } 229 | } 230 | } 231 | } 232 | 233 | extension UIView { 234 | func pushTransition(duration:CFTimeInterval, animationSubType: String) { 235 | let animation:CATransition = CATransition() 236 | animation.timingFunction = CAMediaTimingFunction(name: 237 | CAMediaTimingFunctionName.easeInEaseOut) 238 | animation.type = CATransitionType.push 239 | animation.subtype = convertToOptionalCATransitionSubtype(animationSubType) 240 | animation.duration = duration 241 | self.layer.add(animation, forKey: convertFromCATransitionType(CATransitionType.push)) 242 | } 243 | } 244 | 245 | fileprivate func convertFromCATransitionSubtype(_ input: CATransitionSubtype) -> String { 246 | return input.rawValue 247 | } 248 | 249 | fileprivate func convertToOptionalCATransitionSubtype(_ input: String?) -> CATransitionSubtype? { 250 | guard let input = input else { return nil } 251 | return CATransitionSubtype(rawValue: input) 252 | } 253 | 254 | fileprivate func convertFromCATransitionType(_ input: CATransitionType) -> String { 255 | return input.rawValue 256 | } 257 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /Example/SlidingText.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 607FACEC1AFB9204008FA782 /* Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACEB1AFB9204008FA782 /* Tests.swift */; }; 11 | B8204424EF6D895250E7A4BC /* Pods_SlidingText_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F9CB551BF970E4A1499F7946 /* Pods_SlidingText_Tests.framework */; }; 12 | /* End PBXBuildFile section */ 13 | 14 | /* Begin PBXFileReference section */ 15 | 1A33B1AB180E68C9876133CC /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../README.md; sourceTree = ""; }; 16 | 54D8F49C5AC6E4E47D15CC36 /* Pods-SlidingText_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SlidingText_Tests.release.xcconfig"; path = "Pods/Target Support Files/Pods-SlidingText_Tests/Pods-SlidingText_Tests.release.xcconfig"; sourceTree = ""; }; 17 | 607FACE51AFB9204008FA782 /* SlidingText_Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SlidingText_Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 18 | 607FACEA1AFB9204008FA782 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 19 | 607FACEB1AFB9204008FA782 /* Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Tests.swift; sourceTree = ""; }; 20 | 67F661CB62385BB330C49A66 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = LICENSE; path = ../LICENSE; sourceTree = ""; }; 21 | 6F12E2A9D32FCF87ADB23660 /* SlidingText.podspec */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = SlidingText.podspec; path = ../SlidingText.podspec; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 22 | D66F84592C14C4726D7D0559 /* Pods-SlidingText_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SlidingText_Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-SlidingText_Tests/Pods-SlidingText_Tests.debug.xcconfig"; sourceTree = ""; }; 23 | F9CB551BF970E4A1499F7946 /* Pods_SlidingText_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SlidingText_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 24 | /* End PBXFileReference section */ 25 | 26 | /* Begin PBXFrameworksBuildPhase section */ 27 | 607FACE21AFB9204008FA782 /* Frameworks */ = { 28 | isa = PBXFrameworksBuildPhase; 29 | buildActionMask = 2147483647; 30 | files = ( 31 | B8204424EF6D895250E7A4BC /* Pods_SlidingText_Tests.framework in Frameworks */, 32 | ); 33 | runOnlyForDeploymentPostprocessing = 0; 34 | }; 35 | /* End PBXFrameworksBuildPhase section */ 36 | 37 | /* Begin PBXGroup section */ 38 | 050706C65EE1098BCDEF6C6B /* Pods */ = { 39 | isa = PBXGroup; 40 | children = ( 41 | D66F84592C14C4726D7D0559 /* Pods-SlidingText_Tests.debug.xcconfig */, 42 | 54D8F49C5AC6E4E47D15CC36 /* Pods-SlidingText_Tests.release.xcconfig */, 43 | ); 44 | name = Pods; 45 | sourceTree = ""; 46 | }; 47 | 607FACC71AFB9204008FA782 = { 48 | isa = PBXGroup; 49 | children = ( 50 | 607FACF51AFB993E008FA782 /* Podspec Metadata */, 51 | 607FACE81AFB9204008FA782 /* Tests */, 52 | 607FACD11AFB9204008FA782 /* Products */, 53 | 050706C65EE1098BCDEF6C6B /* Pods */, 54 | B012BB1989ED635474A33E2C /* Frameworks */, 55 | ); 56 | sourceTree = ""; 57 | }; 58 | 607FACD11AFB9204008FA782 /* Products */ = { 59 | isa = PBXGroup; 60 | children = ( 61 | 607FACE51AFB9204008FA782 /* SlidingText_Tests.xctest */, 62 | ); 63 | name = Products; 64 | sourceTree = ""; 65 | }; 66 | 607FACE81AFB9204008FA782 /* Tests */ = { 67 | isa = PBXGroup; 68 | children = ( 69 | 607FACEB1AFB9204008FA782 /* Tests.swift */, 70 | 607FACE91AFB9204008FA782 /* Supporting Files */, 71 | ); 72 | path = Tests; 73 | sourceTree = ""; 74 | }; 75 | 607FACE91AFB9204008FA782 /* Supporting Files */ = { 76 | isa = PBXGroup; 77 | children = ( 78 | 607FACEA1AFB9204008FA782 /* Info.plist */, 79 | ); 80 | name = "Supporting Files"; 81 | sourceTree = ""; 82 | }; 83 | 607FACF51AFB993E008FA782 /* Podspec Metadata */ = { 84 | isa = PBXGroup; 85 | children = ( 86 | 6F12E2A9D32FCF87ADB23660 /* SlidingText.podspec */, 87 | 1A33B1AB180E68C9876133CC /* README.md */, 88 | 67F661CB62385BB330C49A66 /* LICENSE */, 89 | ); 90 | name = "Podspec Metadata"; 91 | sourceTree = ""; 92 | }; 93 | B012BB1989ED635474A33E2C /* Frameworks */ = { 94 | isa = PBXGroup; 95 | children = ( 96 | F9CB551BF970E4A1499F7946 /* Pods_SlidingText_Tests.framework */, 97 | ); 98 | name = Frameworks; 99 | sourceTree = ""; 100 | }; 101 | /* End PBXGroup section */ 102 | 103 | /* Begin PBXNativeTarget section */ 104 | 607FACE41AFB9204008FA782 /* SlidingText_Tests */ = { 105 | isa = PBXNativeTarget; 106 | buildConfigurationList = 607FACF21AFB9204008FA782 /* Build configuration list for PBXNativeTarget "SlidingText_Tests" */; 107 | buildPhases = ( 108 | 2DB139B3595D1954E7E00D20 /* [CP] Check Pods Manifest.lock */, 109 | 607FACE11AFB9204008FA782 /* Sources */, 110 | 607FACE21AFB9204008FA782 /* Frameworks */, 111 | 607FACE31AFB9204008FA782 /* Resources */, 112 | B56C5F6E5905D224B1C54195 /* [CP] Embed Pods Frameworks */, 113 | ); 114 | buildRules = ( 115 | ); 116 | dependencies = ( 117 | ); 118 | name = SlidingText_Tests; 119 | productName = Tests; 120 | productReference = 607FACE51AFB9204008FA782 /* SlidingText_Tests.xctest */; 121 | productType = "com.apple.product-type.bundle.unit-test"; 122 | }; 123 | /* End PBXNativeTarget section */ 124 | 125 | /* Begin PBXProject section */ 126 | 607FACC81AFB9204008FA782 /* Project object */ = { 127 | isa = PBXProject; 128 | attributes = { 129 | LastSwiftUpdateCheck = 0830; 130 | LastUpgradeCheck = 0830; 131 | ORGANIZATIONNAME = CocoaPods; 132 | TargetAttributes = { 133 | 607FACE41AFB9204008FA782 = { 134 | CreatedOnToolsVersion = 6.3.1; 135 | LastSwiftMigration = 0900; 136 | TestTargetID = 607FACCF1AFB9204008FA782; 137 | }; 138 | }; 139 | }; 140 | buildConfigurationList = 607FACCB1AFB9204008FA782 /* Build configuration list for PBXProject "SlidingText" */; 141 | compatibilityVersion = "Xcode 3.2"; 142 | developmentRegion = English; 143 | hasScannedForEncodings = 0; 144 | knownRegions = ( 145 | en, 146 | Base, 147 | ); 148 | mainGroup = 607FACC71AFB9204008FA782; 149 | productRefGroup = 607FACD11AFB9204008FA782 /* Products */; 150 | projectDirPath = ""; 151 | projectRoot = ""; 152 | targets = ( 153 | 607FACE41AFB9204008FA782 /* SlidingText_Tests */, 154 | ); 155 | }; 156 | /* End PBXProject section */ 157 | 158 | /* Begin PBXResourcesBuildPhase section */ 159 | 607FACE31AFB9204008FA782 /* Resources */ = { 160 | isa = PBXResourcesBuildPhase; 161 | buildActionMask = 2147483647; 162 | files = ( 163 | ); 164 | runOnlyForDeploymentPostprocessing = 0; 165 | }; 166 | /* End PBXResourcesBuildPhase section */ 167 | 168 | /* Begin PBXShellScriptBuildPhase section */ 169 | 2DB139B3595D1954E7E00D20 /* [CP] Check Pods Manifest.lock */ = { 170 | isa = PBXShellScriptBuildPhase; 171 | buildActionMask = 2147483647; 172 | files = ( 173 | ); 174 | inputFileListPaths = ( 175 | ); 176 | inputPaths = ( 177 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock", 178 | "${PODS_ROOT}/Manifest.lock", 179 | ); 180 | name = "[CP] Check Pods Manifest.lock"; 181 | outputFileListPaths = ( 182 | ); 183 | outputPaths = ( 184 | "$(DERIVED_FILE_DIR)/Pods-SlidingText_Tests-checkManifestLockResult.txt", 185 | ); 186 | runOnlyForDeploymentPostprocessing = 0; 187 | shellPath = /bin/sh; 188 | 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"; 189 | showEnvVarsInLog = 0; 190 | }; 191 | B56C5F6E5905D224B1C54195 /* [CP] Embed Pods Frameworks */ = { 192 | isa = PBXShellScriptBuildPhase; 193 | buildActionMask = 2147483647; 194 | files = ( 195 | ); 196 | inputFileListPaths = ( 197 | ); 198 | inputPaths = ( 199 | "${SRCROOT}/Pods/Target Support Files/Pods-SlidingText_Tests/Pods-SlidingText_Tests-frameworks.sh", 200 | "${BUILT_PRODUCTS_DIR}/SlidingText/SlidingText.framework", 201 | ); 202 | name = "[CP] Embed Pods Frameworks"; 203 | outputFileListPaths = ( 204 | ); 205 | outputPaths = ( 206 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SlidingText.framework", 207 | ); 208 | runOnlyForDeploymentPostprocessing = 0; 209 | shellPath = /bin/sh; 210 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-SlidingText_Tests/Pods-SlidingText_Tests-frameworks.sh\"\n"; 211 | showEnvVarsInLog = 0; 212 | }; 213 | /* End PBXShellScriptBuildPhase section */ 214 | 215 | /* Begin PBXSourcesBuildPhase section */ 216 | 607FACE11AFB9204008FA782 /* Sources */ = { 217 | isa = PBXSourcesBuildPhase; 218 | buildActionMask = 2147483647; 219 | files = ( 220 | 607FACEC1AFB9204008FA782 /* Tests.swift in Sources */, 221 | ); 222 | runOnlyForDeploymentPostprocessing = 0; 223 | }; 224 | /* End PBXSourcesBuildPhase section */ 225 | 226 | /* Begin XCBuildConfiguration section */ 227 | 607FACED1AFB9204008FA782 /* Debug */ = { 228 | isa = XCBuildConfiguration; 229 | buildSettings = { 230 | ALWAYS_SEARCH_USER_PATHS = NO; 231 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 232 | CLANG_CXX_LIBRARY = "libc++"; 233 | CLANG_ENABLE_MODULES = YES; 234 | CLANG_ENABLE_OBJC_ARC = YES; 235 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 236 | CLANG_WARN_BOOL_CONVERSION = YES; 237 | CLANG_WARN_COMMA = YES; 238 | CLANG_WARN_CONSTANT_CONVERSION = YES; 239 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 240 | CLANG_WARN_EMPTY_BODY = YES; 241 | CLANG_WARN_ENUM_CONVERSION = YES; 242 | CLANG_WARN_INFINITE_RECURSION = YES; 243 | CLANG_WARN_INT_CONVERSION = YES; 244 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 245 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 246 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 247 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 248 | CLANG_WARN_STRICT_PROTOTYPES = YES; 249 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 250 | CLANG_WARN_UNREACHABLE_CODE = YES; 251 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 252 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 253 | COPY_PHASE_STRIP = NO; 254 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 255 | ENABLE_STRICT_OBJC_MSGSEND = YES; 256 | ENABLE_TESTABILITY = YES; 257 | GCC_C_LANGUAGE_STANDARD = gnu99; 258 | GCC_DYNAMIC_NO_PIC = NO; 259 | GCC_NO_COMMON_BLOCKS = YES; 260 | GCC_OPTIMIZATION_LEVEL = 0; 261 | GCC_PREPROCESSOR_DEFINITIONS = ( 262 | "DEBUG=1", 263 | "$(inherited)", 264 | ); 265 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 266 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 267 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 268 | GCC_WARN_UNDECLARED_SELECTOR = YES; 269 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 270 | GCC_WARN_UNUSED_FUNCTION = YES; 271 | GCC_WARN_UNUSED_VARIABLE = YES; 272 | IPHONEOS_DEPLOYMENT_TARGET = 9.3; 273 | MTL_ENABLE_DEBUG_INFO = YES; 274 | ONLY_ACTIVE_ARCH = YES; 275 | SDKROOT = iphoneos; 276 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 277 | }; 278 | name = Debug; 279 | }; 280 | 607FACEE1AFB9204008FA782 /* Release */ = { 281 | isa = XCBuildConfiguration; 282 | buildSettings = { 283 | ALWAYS_SEARCH_USER_PATHS = NO; 284 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 285 | CLANG_CXX_LIBRARY = "libc++"; 286 | CLANG_ENABLE_MODULES = YES; 287 | CLANG_ENABLE_OBJC_ARC = YES; 288 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 289 | CLANG_WARN_BOOL_CONVERSION = YES; 290 | CLANG_WARN_COMMA = YES; 291 | CLANG_WARN_CONSTANT_CONVERSION = YES; 292 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 293 | CLANG_WARN_EMPTY_BODY = YES; 294 | CLANG_WARN_ENUM_CONVERSION = YES; 295 | CLANG_WARN_INFINITE_RECURSION = YES; 296 | CLANG_WARN_INT_CONVERSION = YES; 297 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 298 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 299 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 300 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 301 | CLANG_WARN_STRICT_PROTOTYPES = YES; 302 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 303 | CLANG_WARN_UNREACHABLE_CODE = YES; 304 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 305 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 306 | COPY_PHASE_STRIP = NO; 307 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 308 | ENABLE_NS_ASSERTIONS = NO; 309 | ENABLE_STRICT_OBJC_MSGSEND = YES; 310 | GCC_C_LANGUAGE_STANDARD = gnu99; 311 | GCC_NO_COMMON_BLOCKS = YES; 312 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 313 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 314 | GCC_WARN_UNDECLARED_SELECTOR = YES; 315 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 316 | GCC_WARN_UNUSED_FUNCTION = YES; 317 | GCC_WARN_UNUSED_VARIABLE = YES; 318 | IPHONEOS_DEPLOYMENT_TARGET = 9.3; 319 | MTL_ENABLE_DEBUG_INFO = NO; 320 | SDKROOT = iphoneos; 321 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; 322 | VALIDATE_PRODUCT = YES; 323 | }; 324 | name = Release; 325 | }; 326 | 607FACF31AFB9204008FA782 /* Debug */ = { 327 | isa = XCBuildConfiguration; 328 | baseConfigurationReference = D66F84592C14C4726D7D0559 /* Pods-SlidingText_Tests.debug.xcconfig */; 329 | buildSettings = { 330 | FRAMEWORK_SEARCH_PATHS = ( 331 | "$(SDKROOT)/Developer/Library/Frameworks", 332 | "$(inherited)", 333 | ); 334 | GCC_PREPROCESSOR_DEFINITIONS = ( 335 | "DEBUG=1", 336 | "$(inherited)", 337 | ); 338 | INFOPLIST_FILE = Tests/Info.plist; 339 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 340 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.$(PRODUCT_NAME:rfc1034identifier)"; 341 | PRODUCT_NAME = "$(TARGET_NAME)"; 342 | SWIFT_SWIFT3_OBJC_INFERENCE = Default; 343 | SWIFT_VERSION = 4.0; 344 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SlidingText_Example.app/SlidingText_Example"; 345 | }; 346 | name = Debug; 347 | }; 348 | 607FACF41AFB9204008FA782 /* Release */ = { 349 | isa = XCBuildConfiguration; 350 | baseConfigurationReference = 54D8F49C5AC6E4E47D15CC36 /* Pods-SlidingText_Tests.release.xcconfig */; 351 | buildSettings = { 352 | FRAMEWORK_SEARCH_PATHS = ( 353 | "$(SDKROOT)/Developer/Library/Frameworks", 354 | "$(inherited)", 355 | ); 356 | INFOPLIST_FILE = Tests/Info.plist; 357 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 358 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.$(PRODUCT_NAME:rfc1034identifier)"; 359 | PRODUCT_NAME = "$(TARGET_NAME)"; 360 | SWIFT_SWIFT3_OBJC_INFERENCE = Default; 361 | SWIFT_VERSION = 4.0; 362 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SlidingText_Example.app/SlidingText_Example"; 363 | }; 364 | name = Release; 365 | }; 366 | /* End XCBuildConfiguration section */ 367 | 368 | /* Begin XCConfigurationList section */ 369 | 607FACCB1AFB9204008FA782 /* Build configuration list for PBXProject "SlidingText" */ = { 370 | isa = XCConfigurationList; 371 | buildConfigurations = ( 372 | 607FACED1AFB9204008FA782 /* Debug */, 373 | 607FACEE1AFB9204008FA782 /* Release */, 374 | ); 375 | defaultConfigurationIsVisible = 0; 376 | defaultConfigurationName = Release; 377 | }; 378 | 607FACF21AFB9204008FA782 /* Build configuration list for PBXNativeTarget "SlidingText_Tests" */ = { 379 | isa = XCConfigurationList; 380 | buildConfigurations = ( 381 | 607FACF31AFB9204008FA782 /* Debug */, 382 | 607FACF41AFB9204008FA782 /* Release */, 383 | ); 384 | defaultConfigurationIsVisible = 0; 385 | defaultConfigurationName = Release; 386 | }; 387 | /* End XCConfigurationList section */ 388 | }; 389 | rootObject = 607FACC81AFB9204008FA782 /* Project object */; 390 | } 391 | -------------------------------------------------------------------------------- /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 | 40CC07B093EBFB693685F74E8F077F6D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D6DFF15000AFE2A371BF499E7AFDA808 /* Foundation.framework */; }; 11 | 517BD78A276340D97BF0DD7630784B57 /* SlidingText-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 105A1E2340372EE91D054D7888DCA5D0 /* SlidingText-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 12 | 6D6DC71B6D550384E196BCF93CA6BCFF /* Pods-SlidingText_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D3813A2EEBAF22D01D36D5164C38140 /* Pods-SlidingText_Tests-dummy.m */; }; 13 | 8A38A2D021A32F6B007955F9 /* SlidingText.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A38A2CF21A32F6B007955F9 /* SlidingText.swift */; }; 14 | B8B05FAFB45397BD8835A1DAFF541311 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D6DFF15000AFE2A371BF499E7AFDA808 /* Foundation.framework */; }; 15 | C89A54B32EE97BFB92D2F6E706573CD3 /* SlidingText-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6CA1E481CE0C862D976964AB77A20594 /* SlidingText-dummy.m */; }; 16 | F440CC91AA8F36A2E502FEBB7CB695A0 /* Pods-SlidingText_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 847F599C0E8BFC3F023E71AC31B21DFD /* Pods-SlidingText_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; 17 | /* End PBXBuildFile section */ 18 | 19 | /* Begin PBXContainerItemProxy section */ 20 | 45FEE8B264120C5F5E1BF66A69605991 /* PBXContainerItemProxy */ = { 21 | isa = PBXContainerItemProxy; 22 | containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; 23 | proxyType = 1; 24 | remoteGlobalIDString = D16721558B9BB485EC31591CF6E96E22; 25 | remoteInfo = SlidingText; 26 | }; 27 | /* End PBXContainerItemProxy section */ 28 | 29 | /* Begin PBXFileReference section */ 30 | 01A4342E4C7F0780F67A351BA70C2C44 /* SlidingText.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = SlidingText.modulemap; sourceTree = ""; }; 31 | 105A1E2340372EE91D054D7888DCA5D0 /* SlidingText-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SlidingText-umbrella.h"; sourceTree = ""; }; 32 | 1C2EB79208DD3101829F6645DB8C41CB /* SlidingText.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = SlidingText.xcconfig; sourceTree = ""; }; 33 | 3151B38F89DA2676203C01470CB1B289 /* Pods-SlidingText_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-SlidingText_Tests.release.xcconfig"; sourceTree = ""; }; 34 | 31BD33A7970D8565FE4D29861B680010 /* SlidingText-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "SlidingText-prefix.pch"; sourceTree = ""; }; 35 | 49F083550910DEE4F847DBA2897FEFFD /* Pods-SlidingText_Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-SlidingText_Tests-resources.sh"; sourceTree = ""; }; 36 | 4F4717F8EBD843D1B97EFDF527ED9E5F /* Pods_SlidingText_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_SlidingText_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 37 | 578078BDB81DF307D8F9B41E92C5EF19 /* Pods-SlidingText_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-SlidingText_Tests.modulemap"; sourceTree = ""; }; 38 | 5D3813A2EEBAF22D01D36D5164C38140 /* Pods-SlidingText_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-SlidingText_Tests-dummy.m"; sourceTree = ""; }; 39 | 6CA1E481CE0C862D976964AB77A20594 /* SlidingText-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "SlidingText-dummy.m"; sourceTree = ""; }; 40 | 6F66300F4CD180B9DED4229BE93F7C12 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 41 | 7A269E2C8F87D10A6449A9FEE4A9A04A /* Pods-SlidingText_Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-SlidingText_Tests-frameworks.sh"; sourceTree = ""; }; 42 | 7C4F41A5F2D64EFD7B61A1068F7C59CD /* SlidingText.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SlidingText.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 43 | 847F599C0E8BFC3F023E71AC31B21DFD /* Pods-SlidingText_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-SlidingText_Tests-umbrella.h"; sourceTree = ""; }; 44 | 8A38A2CF21A32F6B007955F9 /* SlidingText.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SlidingText.swift; path = SlidingText/Classes/SlidingText.swift; sourceTree = ""; }; 45 | 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 46 | 986FD6C85FEB74B45A950124CE51BEC6 /* Pods-SlidingText_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-SlidingText_Tests.debug.xcconfig"; sourceTree = ""; }; 47 | 9C55A3E388801DEF02CF26691F6428AE /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; 48 | BA075AC6E305664F58EED8C5F4E65A76 /* Pods-SlidingText_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-SlidingText_Tests-acknowledgements.plist"; sourceTree = ""; }; 49 | D6DFF15000AFE2A371BF499E7AFDA808 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; 50 | E1BC10C1E8DC3C1BDF08722910CC34EE /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; 51 | EB4DE88CC95302E4203C759EE23D417C /* Pods-SlidingText_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-SlidingText_Tests-acknowledgements.markdown"; sourceTree = ""; }; 52 | F3F9687400C4E12B304DBA6F98F75829 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 53 | FF44EC5404C52689293DC190C0F2E200 /* SlidingText.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; path = SlidingText.podspec; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 54 | /* End PBXFileReference section */ 55 | 56 | /* Begin PBXFrameworksBuildPhase section */ 57 | 0F67CBA0A105966D92D916A625C05816 /* Frameworks */ = { 58 | isa = PBXFrameworksBuildPhase; 59 | buildActionMask = 2147483647; 60 | files = ( 61 | B8B05FAFB45397BD8835A1DAFF541311 /* Foundation.framework in Frameworks */, 62 | ); 63 | runOnlyForDeploymentPostprocessing = 0; 64 | }; 65 | AFE61FCD0C13017021019337A1F25467 /* Frameworks */ = { 66 | isa = PBXFrameworksBuildPhase; 67 | buildActionMask = 2147483647; 68 | files = ( 69 | 40CC07B093EBFB693685F74E8F077F6D /* Foundation.framework in Frameworks */, 70 | ); 71 | runOnlyForDeploymentPostprocessing = 0; 72 | }; 73 | /* End PBXFrameworksBuildPhase section */ 74 | 75 | /* Begin PBXGroup section */ 76 | 0E146805D29E1AAC1D278080CB4FFFF5 /* Support Files */ = { 77 | isa = PBXGroup; 78 | children = ( 79 | F3F9687400C4E12B304DBA6F98F75829 /* Info.plist */, 80 | 01A4342E4C7F0780F67A351BA70C2C44 /* SlidingText.modulemap */, 81 | 1C2EB79208DD3101829F6645DB8C41CB /* SlidingText.xcconfig */, 82 | 6CA1E481CE0C862D976964AB77A20594 /* SlidingText-dummy.m */, 83 | 31BD33A7970D8565FE4D29861B680010 /* SlidingText-prefix.pch */, 84 | 105A1E2340372EE91D054D7888DCA5D0 /* SlidingText-umbrella.h */, 85 | ); 86 | name = "Support Files"; 87 | path = "Example/Pods/Target Support Files/SlidingText"; 88 | sourceTree = ""; 89 | }; 90 | 22E01C16058862E1C1ADA54B3D3371C7 /* Products */ = { 91 | isa = PBXGroup; 92 | children = ( 93 | 4F4717F8EBD843D1B97EFDF527ED9E5F /* Pods_SlidingText_Tests.framework */, 94 | 7C4F41A5F2D64EFD7B61A1068F7C59CD /* SlidingText.framework */, 95 | ); 96 | name = Products; 97 | sourceTree = ""; 98 | }; 99 | 310F2927C9438EA1CD88EDC9A288EC5D /* Pod */ = { 100 | isa = PBXGroup; 101 | children = ( 102 | E1BC10C1E8DC3C1BDF08722910CC34EE /* LICENSE */, 103 | 9C55A3E388801DEF02CF26691F6428AE /* README.md */, 104 | FF44EC5404C52689293DC190C0F2E200 /* SlidingText.podspec */, 105 | ); 106 | name = Pod; 107 | sourceTree = ""; 108 | }; 109 | 320A6C952CD26DDCC61DCDC01C27ACA3 /* SlidingText */ = { 110 | isa = PBXGroup; 111 | children = ( 112 | 8A38A2CF21A32F6B007955F9 /* SlidingText.swift */, 113 | 310F2927C9438EA1CD88EDC9A288EC5D /* Pod */, 114 | 0E146805D29E1AAC1D278080CB4FFFF5 /* Support Files */, 115 | ); 116 | name = SlidingText; 117 | path = ../..; 118 | sourceTree = ""; 119 | }; 120 | 44D5347904CF754D6785B84253F2574A /* iOS */ = { 121 | isa = PBXGroup; 122 | children = ( 123 | D6DFF15000AFE2A371BF499E7AFDA808 /* Foundation.framework */, 124 | ); 125 | name = iOS; 126 | sourceTree = ""; 127 | }; 128 | 617D80CC77D777FC7ADEC52CC35F7A60 /* Targets Support Files */ = { 129 | isa = PBXGroup; 130 | children = ( 131 | 8FFA4877D2643658DAF93FABCE718FBA /* Pods-SlidingText_Tests */, 132 | ); 133 | name = "Targets Support Files"; 134 | sourceTree = ""; 135 | }; 136 | 7DB346D0F39D3F0E887471402A8071AB = { 137 | isa = PBXGroup; 138 | children = ( 139 | 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, 140 | F204B9243029D88AC76726FDB5AC396D /* Development Pods */, 141 | BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */, 142 | 22E01C16058862E1C1ADA54B3D3371C7 /* Products */, 143 | 617D80CC77D777FC7ADEC52CC35F7A60 /* Targets Support Files */, 144 | ); 145 | sourceTree = ""; 146 | }; 147 | 8FFA4877D2643658DAF93FABCE718FBA /* Pods-SlidingText_Tests */ = { 148 | isa = PBXGroup; 149 | children = ( 150 | 6F66300F4CD180B9DED4229BE93F7C12 /* Info.plist */, 151 | 578078BDB81DF307D8F9B41E92C5EF19 /* Pods-SlidingText_Tests.modulemap */, 152 | EB4DE88CC95302E4203C759EE23D417C /* Pods-SlidingText_Tests-acknowledgements.markdown */, 153 | BA075AC6E305664F58EED8C5F4E65A76 /* Pods-SlidingText_Tests-acknowledgements.plist */, 154 | 5D3813A2EEBAF22D01D36D5164C38140 /* Pods-SlidingText_Tests-dummy.m */, 155 | 7A269E2C8F87D10A6449A9FEE4A9A04A /* Pods-SlidingText_Tests-frameworks.sh */, 156 | 49F083550910DEE4F847DBA2897FEFFD /* Pods-SlidingText_Tests-resources.sh */, 157 | 847F599C0E8BFC3F023E71AC31B21DFD /* Pods-SlidingText_Tests-umbrella.h */, 158 | 986FD6C85FEB74B45A950124CE51BEC6 /* Pods-SlidingText_Tests.debug.xcconfig */, 159 | 3151B38F89DA2676203C01470CB1B289 /* Pods-SlidingText_Tests.release.xcconfig */, 160 | ); 161 | name = "Pods-SlidingText_Tests"; 162 | path = "Target Support Files/Pods-SlidingText_Tests"; 163 | sourceTree = ""; 164 | }; 165 | BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = { 166 | isa = PBXGroup; 167 | children = ( 168 | 44D5347904CF754D6785B84253F2574A /* iOS */, 169 | ); 170 | name = Frameworks; 171 | sourceTree = ""; 172 | }; 173 | F204B9243029D88AC76726FDB5AC396D /* Development Pods */ = { 174 | isa = PBXGroup; 175 | children = ( 176 | 320A6C952CD26DDCC61DCDC01C27ACA3 /* SlidingText */, 177 | ); 178 | name = "Development Pods"; 179 | sourceTree = ""; 180 | }; 181 | /* End PBXGroup section */ 182 | 183 | /* Begin PBXHeadersBuildPhase section */ 184 | 339B7A1062E7BDBF8057D1550F790EDB /* Headers */ = { 185 | isa = PBXHeadersBuildPhase; 186 | buildActionMask = 2147483647; 187 | files = ( 188 | 517BD78A276340D97BF0DD7630784B57 /* SlidingText-umbrella.h in Headers */, 189 | ); 190 | runOnlyForDeploymentPostprocessing = 0; 191 | }; 192 | AC2996500664BFDDDF8886785340955F /* Headers */ = { 193 | isa = PBXHeadersBuildPhase; 194 | buildActionMask = 2147483647; 195 | files = ( 196 | F440CC91AA8F36A2E502FEBB7CB695A0 /* Pods-SlidingText_Tests-umbrella.h in Headers */, 197 | ); 198 | runOnlyForDeploymentPostprocessing = 0; 199 | }; 200 | /* End PBXHeadersBuildPhase section */ 201 | 202 | /* Begin PBXNativeTarget section */ 203 | 992EB43FC9B52FD30C45EE9DF5AF63C3 /* Pods-SlidingText_Tests */ = { 204 | isa = PBXNativeTarget; 205 | buildConfigurationList = 4B094C818AC681FAB93D1323EC105145 /* Build configuration list for PBXNativeTarget "Pods-SlidingText_Tests" */; 206 | buildPhases = ( 207 | AC2996500664BFDDDF8886785340955F /* Headers */, 208 | E4DDD2F585E1B868313B05CD5D0AE438 /* Sources */, 209 | AFE61FCD0C13017021019337A1F25467 /* Frameworks */, 210 | 91B1EC3A668882436A15BD60A5AABA9A /* Resources */, 211 | ); 212 | buildRules = ( 213 | ); 214 | dependencies = ( 215 | 36169DF3EC23EFBE9AEE32EDDF49BBF2 /* PBXTargetDependency */, 216 | ); 217 | name = "Pods-SlidingText_Tests"; 218 | productName = "Pods-SlidingText_Tests"; 219 | productReference = 4F4717F8EBD843D1B97EFDF527ED9E5F /* Pods_SlidingText_Tests.framework */; 220 | productType = "com.apple.product-type.framework"; 221 | }; 222 | D16721558B9BB485EC31591CF6E96E22 /* SlidingText */ = { 223 | isa = PBXNativeTarget; 224 | buildConfigurationList = AF24FAD12FCAB74599F15FFFA4BA2E1A /* Build configuration list for PBXNativeTarget "SlidingText" */; 225 | buildPhases = ( 226 | 339B7A1062E7BDBF8057D1550F790EDB /* Headers */, 227 | AA15C1D76617E8607DEFC8408C28FFCD /* Sources */, 228 | 0F67CBA0A105966D92D916A625C05816 /* Frameworks */, 229 | 7EAF95E5EF674EFFC346D64EA9393EBE /* Resources */, 230 | ); 231 | buildRules = ( 232 | ); 233 | dependencies = ( 234 | ); 235 | name = SlidingText; 236 | productName = SlidingText; 237 | productReference = 7C4F41A5F2D64EFD7B61A1068F7C59CD /* SlidingText.framework */; 238 | productType = "com.apple.product-type.framework"; 239 | }; 240 | /* End PBXNativeTarget section */ 241 | 242 | /* Begin PBXProject section */ 243 | D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { 244 | isa = PBXProject; 245 | attributes = { 246 | LastSwiftUpdateCheck = 0930; 247 | LastUpgradeCheck = 0930; 248 | TargetAttributes = { 249 | 992EB43FC9B52FD30C45EE9DF5AF63C3 = { 250 | LastSwiftMigration = 1010; 251 | }; 252 | }; 253 | }; 254 | buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; 255 | compatibilityVersion = "Xcode 3.2"; 256 | developmentRegion = English; 257 | hasScannedForEncodings = 0; 258 | knownRegions = ( 259 | en, 260 | ); 261 | mainGroup = 7DB346D0F39D3F0E887471402A8071AB; 262 | productRefGroup = 22E01C16058862E1C1ADA54B3D3371C7 /* Products */; 263 | projectDirPath = ""; 264 | projectRoot = ""; 265 | targets = ( 266 | 992EB43FC9B52FD30C45EE9DF5AF63C3 /* Pods-SlidingText_Tests */, 267 | D16721558B9BB485EC31591CF6E96E22 /* SlidingText */, 268 | ); 269 | }; 270 | /* End PBXProject section */ 271 | 272 | /* Begin PBXResourcesBuildPhase section */ 273 | 7EAF95E5EF674EFFC346D64EA9393EBE /* Resources */ = { 274 | isa = PBXResourcesBuildPhase; 275 | buildActionMask = 2147483647; 276 | files = ( 277 | ); 278 | runOnlyForDeploymentPostprocessing = 0; 279 | }; 280 | 91B1EC3A668882436A15BD60A5AABA9A /* Resources */ = { 281 | isa = PBXResourcesBuildPhase; 282 | buildActionMask = 2147483647; 283 | files = ( 284 | ); 285 | runOnlyForDeploymentPostprocessing = 0; 286 | }; 287 | /* End PBXResourcesBuildPhase section */ 288 | 289 | /* Begin PBXSourcesBuildPhase section */ 290 | AA15C1D76617E8607DEFC8408C28FFCD /* Sources */ = { 291 | isa = PBXSourcesBuildPhase; 292 | buildActionMask = 2147483647; 293 | files = ( 294 | C89A54B32EE97BFB92D2F6E706573CD3 /* SlidingText-dummy.m in Sources */, 295 | ); 296 | runOnlyForDeploymentPostprocessing = 0; 297 | }; 298 | E4DDD2F585E1B868313B05CD5D0AE438 /* Sources */ = { 299 | isa = PBXSourcesBuildPhase; 300 | buildActionMask = 2147483647; 301 | files = ( 302 | 6D6DC71B6D550384E196BCF93CA6BCFF /* Pods-SlidingText_Tests-dummy.m in Sources */, 303 | 8A38A2D021A32F6B007955F9 /* SlidingText.swift in Sources */, 304 | ); 305 | runOnlyForDeploymentPostprocessing = 0; 306 | }; 307 | /* End PBXSourcesBuildPhase section */ 308 | 309 | /* Begin PBXTargetDependency section */ 310 | 36169DF3EC23EFBE9AEE32EDDF49BBF2 /* PBXTargetDependency */ = { 311 | isa = PBXTargetDependency; 312 | name = SlidingText; 313 | target = D16721558B9BB485EC31591CF6E96E22 /* SlidingText */; 314 | targetProxy = 45FEE8B264120C5F5E1BF66A69605991 /* PBXContainerItemProxy */; 315 | }; 316 | /* End PBXTargetDependency section */ 317 | 318 | /* Begin XCBuildConfiguration section */ 319 | 50646285DD9FD95AF390BDA3FB1948EA /* Debug */ = { 320 | isa = XCBuildConfiguration; 321 | buildSettings = { 322 | ALWAYS_SEARCH_USER_PATHS = NO; 323 | CLANG_ANALYZER_NONNULL = YES; 324 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 325 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 326 | CLANG_CXX_LIBRARY = "libc++"; 327 | CLANG_ENABLE_MODULES = YES; 328 | CLANG_ENABLE_OBJC_ARC = YES; 329 | CLANG_ENABLE_OBJC_WEAK = YES; 330 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 331 | CLANG_WARN_BOOL_CONVERSION = YES; 332 | CLANG_WARN_COMMA = YES; 333 | CLANG_WARN_CONSTANT_CONVERSION = YES; 334 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 335 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 336 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 337 | CLANG_WARN_EMPTY_BODY = YES; 338 | CLANG_WARN_ENUM_CONVERSION = YES; 339 | CLANG_WARN_INFINITE_RECURSION = YES; 340 | CLANG_WARN_INT_CONVERSION = YES; 341 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 342 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 343 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 344 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 345 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 346 | CLANG_WARN_STRICT_PROTOTYPES = YES; 347 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 348 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 349 | CLANG_WARN_UNREACHABLE_CODE = YES; 350 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 351 | CODE_SIGNING_ALLOWED = NO; 352 | CODE_SIGNING_REQUIRED = NO; 353 | COPY_PHASE_STRIP = NO; 354 | DEBUG_INFORMATION_FORMAT = dwarf; 355 | ENABLE_STRICT_OBJC_MSGSEND = YES; 356 | ENABLE_TESTABILITY = YES; 357 | GCC_C_LANGUAGE_STANDARD = gnu11; 358 | GCC_DYNAMIC_NO_PIC = NO; 359 | GCC_NO_COMMON_BLOCKS = YES; 360 | GCC_OPTIMIZATION_LEVEL = 0; 361 | GCC_PREPROCESSOR_DEFINITIONS = ( 362 | "POD_CONFIGURATION_DEBUG=1", 363 | "DEBUG=1", 364 | "$(inherited)", 365 | ); 366 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 367 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 368 | GCC_WARN_UNDECLARED_SELECTOR = YES; 369 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 370 | GCC_WARN_UNUSED_FUNCTION = YES; 371 | GCC_WARN_UNUSED_VARIABLE = YES; 372 | IPHONEOS_DEPLOYMENT_TARGET = 9.3; 373 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 374 | MTL_FAST_MATH = YES; 375 | ONLY_ACTIVE_ARCH = YES; 376 | PRODUCT_NAME = "$(TARGET_NAME)"; 377 | STRIP_INSTALLED_PRODUCT = NO; 378 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 379 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 380 | SWIFT_VERSION = 4.2; 381 | SYMROOT = "${SRCROOT}/../build"; 382 | }; 383 | name = Debug; 384 | }; 385 | 58DCB2BA7C34E84C00C38CEF18A96D11 /* Release */ = { 386 | isa = XCBuildConfiguration; 387 | buildSettings = { 388 | ALWAYS_SEARCH_USER_PATHS = NO; 389 | CLANG_ANALYZER_NONNULL = YES; 390 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 391 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 392 | CLANG_CXX_LIBRARY = "libc++"; 393 | CLANG_ENABLE_MODULES = YES; 394 | CLANG_ENABLE_OBJC_ARC = YES; 395 | CLANG_ENABLE_OBJC_WEAK = YES; 396 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 397 | CLANG_WARN_BOOL_CONVERSION = YES; 398 | CLANG_WARN_COMMA = YES; 399 | CLANG_WARN_CONSTANT_CONVERSION = YES; 400 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 401 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 402 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 403 | CLANG_WARN_EMPTY_BODY = YES; 404 | CLANG_WARN_ENUM_CONVERSION = YES; 405 | CLANG_WARN_INFINITE_RECURSION = YES; 406 | CLANG_WARN_INT_CONVERSION = YES; 407 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 408 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 409 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 410 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 411 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 412 | CLANG_WARN_STRICT_PROTOTYPES = YES; 413 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 414 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 415 | CLANG_WARN_UNREACHABLE_CODE = YES; 416 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 417 | CODE_SIGNING_ALLOWED = NO; 418 | CODE_SIGNING_REQUIRED = NO; 419 | COPY_PHASE_STRIP = NO; 420 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 421 | ENABLE_NS_ASSERTIONS = NO; 422 | ENABLE_STRICT_OBJC_MSGSEND = YES; 423 | GCC_C_LANGUAGE_STANDARD = gnu11; 424 | GCC_NO_COMMON_BLOCKS = YES; 425 | GCC_PREPROCESSOR_DEFINITIONS = ( 426 | "POD_CONFIGURATION_RELEASE=1", 427 | "$(inherited)", 428 | ); 429 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 430 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 431 | GCC_WARN_UNDECLARED_SELECTOR = YES; 432 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 433 | GCC_WARN_UNUSED_FUNCTION = YES; 434 | GCC_WARN_UNUSED_VARIABLE = YES; 435 | IPHONEOS_DEPLOYMENT_TARGET = 9.3; 436 | MTL_ENABLE_DEBUG_INFO = NO; 437 | MTL_FAST_MATH = YES; 438 | PRODUCT_NAME = "$(TARGET_NAME)"; 439 | STRIP_INSTALLED_PRODUCT = NO; 440 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; 441 | SWIFT_VERSION = 4.2; 442 | SYMROOT = "${SRCROOT}/../build"; 443 | }; 444 | name = Release; 445 | }; 446 | 606550BE0EC700218FCD9E379FBC3BDF /* Debug */ = { 447 | isa = XCBuildConfiguration; 448 | baseConfigurationReference = 986FD6C85FEB74B45A950124CE51BEC6 /* Pods-SlidingText_Tests.debug.xcconfig */; 449 | buildSettings = { 450 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; 451 | CLANG_ENABLE_MODULES = YES; 452 | CODE_SIGN_IDENTITY = ""; 453 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 454 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 455 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 456 | CURRENT_PROJECT_VERSION = 1; 457 | DEFINES_MODULE = YES; 458 | DYLIB_COMPATIBILITY_VERSION = 1; 459 | DYLIB_CURRENT_VERSION = 1; 460 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 461 | INFOPLIST_FILE = "Target Support Files/Pods-SlidingText_Tests/Info.plist"; 462 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 463 | IPHONEOS_DEPLOYMENT_TARGET = 9.3; 464 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 465 | MACH_O_TYPE = staticlib; 466 | MODULEMAP_FILE = "Target Support Files/Pods-SlidingText_Tests/Pods-SlidingText_Tests.modulemap"; 467 | OTHER_LDFLAGS = ""; 468 | OTHER_LIBTOOLFLAGS = ""; 469 | PODS_ROOT = "$(SRCROOT)"; 470 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 471 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 472 | SDKROOT = iphoneos; 473 | SKIP_INSTALL = YES; 474 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 475 | SWIFT_VERSION = 4.2; 476 | TARGETED_DEVICE_FAMILY = "1,2"; 477 | VERSIONING_SYSTEM = "apple-generic"; 478 | VERSION_INFO_PREFIX = ""; 479 | }; 480 | name = Debug; 481 | }; 482 | 785C7C27338081C74C335E19500E1CED /* Release */ = { 483 | isa = XCBuildConfiguration; 484 | baseConfigurationReference = 3151B38F89DA2676203C01470CB1B289 /* Pods-SlidingText_Tests.release.xcconfig */; 485 | buildSettings = { 486 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; 487 | CLANG_ENABLE_MODULES = YES; 488 | CODE_SIGN_IDENTITY = ""; 489 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 490 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 491 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 492 | CURRENT_PROJECT_VERSION = 1; 493 | DEFINES_MODULE = YES; 494 | DYLIB_COMPATIBILITY_VERSION = 1; 495 | DYLIB_CURRENT_VERSION = 1; 496 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 497 | INFOPLIST_FILE = "Target Support Files/Pods-SlidingText_Tests/Info.plist"; 498 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 499 | IPHONEOS_DEPLOYMENT_TARGET = 9.3; 500 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 501 | MACH_O_TYPE = staticlib; 502 | MODULEMAP_FILE = "Target Support Files/Pods-SlidingText_Tests/Pods-SlidingText_Tests.modulemap"; 503 | OTHER_LDFLAGS = ""; 504 | OTHER_LIBTOOLFLAGS = ""; 505 | PODS_ROOT = "$(SRCROOT)"; 506 | PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; 507 | PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; 508 | SDKROOT = iphoneos; 509 | SKIP_INSTALL = YES; 510 | SWIFT_VERSION = 4.2; 511 | TARGETED_DEVICE_FAMILY = "1,2"; 512 | VALIDATE_PRODUCT = YES; 513 | VERSIONING_SYSTEM = "apple-generic"; 514 | VERSION_INFO_PREFIX = ""; 515 | }; 516 | name = Release; 517 | }; 518 | CF1199ABF0D2E5EB04F23F569255F179 /* Debug */ = { 519 | isa = XCBuildConfiguration; 520 | baseConfigurationReference = 1C2EB79208DD3101829F6645DB8C41CB /* SlidingText.xcconfig */; 521 | buildSettings = { 522 | CODE_SIGN_IDENTITY = ""; 523 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 524 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 525 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 526 | CURRENT_PROJECT_VERSION = 1; 527 | DEFINES_MODULE = YES; 528 | DYLIB_COMPATIBILITY_VERSION = 1; 529 | DYLIB_CURRENT_VERSION = 1; 530 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 531 | GCC_PREFIX_HEADER = "Target Support Files/SlidingText/SlidingText-prefix.pch"; 532 | INFOPLIST_FILE = "Target Support Files/SlidingText/Info.plist"; 533 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 534 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 535 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 536 | MODULEMAP_FILE = "Target Support Files/SlidingText/SlidingText.modulemap"; 537 | PRODUCT_MODULE_NAME = SlidingText; 538 | PRODUCT_NAME = SlidingText; 539 | SDKROOT = iphoneos; 540 | SKIP_INSTALL = YES; 541 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; 542 | SWIFT_VERSION = 4.0; 543 | TARGETED_DEVICE_FAMILY = "1,2"; 544 | VERSIONING_SYSTEM = "apple-generic"; 545 | VERSION_INFO_PREFIX = ""; 546 | }; 547 | name = Debug; 548 | }; 549 | F94B5610E7695EFD22A36719D823B219 /* Release */ = { 550 | isa = XCBuildConfiguration; 551 | baseConfigurationReference = 1C2EB79208DD3101829F6645DB8C41CB /* SlidingText.xcconfig */; 552 | buildSettings = { 553 | CODE_SIGN_IDENTITY = ""; 554 | "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; 555 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; 556 | "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; 557 | CURRENT_PROJECT_VERSION = 1; 558 | DEFINES_MODULE = YES; 559 | DYLIB_COMPATIBILITY_VERSION = 1; 560 | DYLIB_CURRENT_VERSION = 1; 561 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 562 | GCC_PREFIX_HEADER = "Target Support Files/SlidingText/SlidingText-prefix.pch"; 563 | INFOPLIST_FILE = "Target Support Files/SlidingText/Info.plist"; 564 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 565 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 566 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 567 | MODULEMAP_FILE = "Target Support Files/SlidingText/SlidingText.modulemap"; 568 | PRODUCT_MODULE_NAME = SlidingText; 569 | PRODUCT_NAME = SlidingText; 570 | SDKROOT = iphoneos; 571 | SKIP_INSTALL = YES; 572 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; 573 | SWIFT_VERSION = 4.0; 574 | TARGETED_DEVICE_FAMILY = "1,2"; 575 | VALIDATE_PRODUCT = YES; 576 | VERSIONING_SYSTEM = "apple-generic"; 577 | VERSION_INFO_PREFIX = ""; 578 | }; 579 | name = Release; 580 | }; 581 | /* End XCBuildConfiguration section */ 582 | 583 | /* Begin XCConfigurationList section */ 584 | 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { 585 | isa = XCConfigurationList; 586 | buildConfigurations = ( 587 | 50646285DD9FD95AF390BDA3FB1948EA /* Debug */, 588 | 58DCB2BA7C34E84C00C38CEF18A96D11 /* Release */, 589 | ); 590 | defaultConfigurationIsVisible = 0; 591 | defaultConfigurationName = Release; 592 | }; 593 | 4B094C818AC681FAB93D1323EC105145 /* Build configuration list for PBXNativeTarget "Pods-SlidingText_Tests" */ = { 594 | isa = XCConfigurationList; 595 | buildConfigurations = ( 596 | 606550BE0EC700218FCD9E379FBC3BDF /* Debug */, 597 | 785C7C27338081C74C335E19500E1CED /* Release */, 598 | ); 599 | defaultConfigurationIsVisible = 0; 600 | defaultConfigurationName = Release; 601 | }; 602 | AF24FAD12FCAB74599F15FFFA4BA2E1A /* Build configuration list for PBXNativeTarget "SlidingText" */ = { 603 | isa = XCConfigurationList; 604 | buildConfigurations = ( 605 | CF1199ABF0D2E5EB04F23F569255F179 /* Debug */, 606 | F94B5610E7695EFD22A36719D823B219 /* Release */, 607 | ); 608 | defaultConfigurationIsVisible = 0; 609 | defaultConfigurationName = Release; 610 | }; 611 | /* End XCConfigurationList section */ 612 | }; 613 | rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */; 614 | } 615 | --------------------------------------------------------------------------------