├── .DS_Store ├── DynamicInputView.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ ├── xcshareddata │ │ └── IDEWorkspaceChecks.plist │ └── xcuserdata │ │ └── mac.xcuserdatad │ │ └── UserInterfaceState.xcuserstate └── xcuserdata │ └── mac.xcuserdatad │ └── xcschemes │ └── xcschememanagement.plist ├── DynamicInputView.xcworkspace ├── contents.xcworkspacedata ├── xcshareddata │ └── IDEWorkspaceChecks.plist └── xcuserdata │ └── mac.xcuserdatad │ ├── UserInterfaceState.xcuserstate │ └── xcdebugger │ └── Breakpoints_v2.xcbkptlist ├── DynamicInputView ├── .DS_Store ├── AppDelegate.h ├── AppDelegate.m ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ ├── Contents.json │ │ ├── icon-1024.png │ │ ├── icon-20-ipad.png │ │ ├── icon-20@2x-ipad.png │ │ ├── icon-20@2x.png │ │ ├── icon-20@3x.png │ │ ├── icon-29-ipad.png │ │ ├── icon-29.png │ │ ├── icon-29@2x-ipad.png │ │ ├── icon-29@2x.png │ │ ├── icon-29@3x.png │ │ ├── icon-40.png │ │ ├── icon-40@2x.png │ │ ├── icon-40@3x.png │ │ ├── icon-60@2x.png │ │ ├── icon-60@3x.png │ │ ├── icon-76.png │ │ ├── icon-76@2x.png │ │ └── icon-83.5@2x.png │ ├── Contents.json │ ├── delete.imageset │ │ ├── Contents.json │ │ └── delete.png │ └── logo.imageset │ │ ├── Contents.json │ │ └── logo.png ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard ├── Example │ ├── .DS_Store │ ├── C │ │ ├── ExampleDynamicFooter.h │ │ ├── ExampleDynamicFooter.m │ │ ├── ExampleDynamicHeader.h │ │ ├── ExampleDynamicHeader.m │ │ ├── ExampleDynamicInputCell.h │ │ ├── ExampleDynamicInputCell.m │ │ ├── ExampleDynamicInputInfoView.h │ │ ├── ExampleDynamicInputInfoView.m │ │ ├── ExampleDynamicSectionFooter.h │ │ └── ExampleDynamicSectionFooter.m │ └── V │ │ ├── ExampleViewController.h │ │ └── ExampleViewController.m ├── Info.plist ├── NSString+GHome.h ├── NSString+GHome.m ├── PrefixHeader.pch └── main.m ├── DynamicInputViewTests ├── DynamicInputViewTests.m └── Info.plist ├── DynamicInputViewUITests ├── DynamicInputViewUITests.m └── Info.plist ├── GHDynamicInputView ├── GHDynamicInputView.h ├── GHDynamicInputView.m ├── GHLabel.h └── GHLabel.m ├── LICENSE ├── Podfile ├── Podfile.lock ├── Pods ├── .DS_Store ├── Headers │ ├── Private │ │ ├── IQKeyboardManager │ │ │ ├── IQBarButtonItem.h │ │ │ ├── IQKeyboardManager.h │ │ │ ├── IQKeyboardManagerConstants.h │ │ │ ├── IQKeyboardManagerConstantsInternal.h │ │ │ ├── IQKeyboardReturnKeyHandler.h │ │ │ ├── IQNSArray+Sort.h │ │ │ ├── IQPreviousNextView.h │ │ │ ├── IQTextView.h │ │ │ ├── IQTitleBarButtonItem.h │ │ │ ├── IQToolbar.h │ │ │ ├── IQUIScrollView+Additions.h │ │ │ ├── IQUITextFieldView+Additions.h │ │ │ ├── IQUIView+Hierarchy.h │ │ │ ├── IQUIView+IQKeyboardToolbar.h │ │ │ └── IQUIViewController+Additions.h │ │ └── Masonry │ │ │ ├── MASCompositeConstraint.h │ │ │ ├── MASConstraint+Private.h │ │ │ ├── MASConstraint.h │ │ │ ├── MASConstraintMaker.h │ │ │ ├── MASLayoutConstraint.h │ │ │ ├── MASUtilities.h │ │ │ ├── MASViewAttribute.h │ │ │ ├── MASViewConstraint.h │ │ │ ├── Masonry.h │ │ │ ├── NSArray+MASAdditions.h │ │ │ ├── NSArray+MASShorthandAdditions.h │ │ │ ├── NSLayoutConstraint+MASDebugAdditions.h │ │ │ ├── View+MASAdditions.h │ │ │ ├── View+MASShorthandAdditions.h │ │ │ └── ViewController+MASAdditions.h │ └── Public │ │ ├── IQKeyboardManager │ │ ├── IQBarButtonItem.h │ │ ├── IQKeyboardManager.h │ │ ├── IQKeyboardManagerConstants.h │ │ ├── IQKeyboardReturnKeyHandler.h │ │ ├── IQPreviousNextView.h │ │ ├── IQTextView.h │ │ ├── IQTitleBarButtonItem.h │ │ ├── IQToolbar.h │ │ ├── IQUIScrollView+Additions.h │ │ ├── IQUITextFieldView+Additions.h │ │ ├── IQUIView+Hierarchy.h │ │ ├── IQUIView+IQKeyboardToolbar.h │ │ └── IQUIViewController+Additions.h │ │ └── Masonry │ │ ├── MASCompositeConstraint.h │ │ ├── MASConstraint+Private.h │ │ ├── MASConstraint.h │ │ ├── MASConstraintMaker.h │ │ ├── MASLayoutConstraint.h │ │ ├── MASUtilities.h │ │ ├── MASViewAttribute.h │ │ ├── MASViewConstraint.h │ │ ├── Masonry.h │ │ ├── NSArray+MASAdditions.h │ │ ├── NSArray+MASShorthandAdditions.h │ │ ├── NSLayoutConstraint+MASDebugAdditions.h │ │ ├── View+MASAdditions.h │ │ ├── View+MASShorthandAdditions.h │ │ └── ViewController+MASAdditions.h ├── IQKeyboardManager │ ├── IQKeyboardManager │ │ ├── Categories │ │ │ ├── IQNSArray+Sort.h │ │ │ ├── IQNSArray+Sort.m │ │ │ ├── IQUIScrollView+Additions.h │ │ │ ├── IQUIScrollView+Additions.m │ │ │ ├── IQUITextFieldView+Additions.h │ │ │ ├── IQUITextFieldView+Additions.m │ │ │ ├── IQUIView+Hierarchy.h │ │ │ ├── IQUIView+Hierarchy.m │ │ │ ├── IQUIViewController+Additions.h │ │ │ └── IQUIViewController+Additions.m │ │ ├── Constants │ │ │ ├── IQKeyboardManagerConstants.h │ │ │ └── IQKeyboardManagerConstantsInternal.h │ │ ├── IQKeyboardManager.h │ │ ├── IQKeyboardManager.m │ │ ├── IQKeyboardReturnKeyHandler.h │ │ ├── IQKeyboardReturnKeyHandler.m │ │ ├── IQTextView │ │ │ ├── IQTextView.h │ │ │ └── IQTextView.m │ │ ├── IQToolbar │ │ │ ├── IQBarButtonItem.h │ │ │ ├── IQBarButtonItem.m │ │ │ ├── IQPreviousNextView.h │ │ │ ├── IQPreviousNextView.m │ │ │ ├── IQTitleBarButtonItem.h │ │ │ ├── IQTitleBarButtonItem.m │ │ │ ├── IQToolbar.h │ │ │ ├── IQToolbar.m │ │ │ ├── IQUIView+IQKeyboardToolbar.h │ │ │ └── IQUIView+IQKeyboardToolbar.m │ │ └── Resources │ │ │ └── IQKeyboardManager.xcassets │ │ │ ├── Contents.json │ │ │ ├── IQButtonBarArrowDown.imageset │ │ │ ├── Contents.json │ │ │ ├── IQButtonBarArrowDown@2x.png │ │ │ └── IQButtonBarArrowDown@3x.png │ │ │ ├── IQButtonBarArrowLeft.imageset │ │ │ ├── Contents.json │ │ │ ├── IQButtonBarArrowLeft@2x.png │ │ │ └── IQButtonBarArrowLeft@3x.png │ │ │ ├── IQButtonBarArrowRight.imageset │ │ │ ├── Contents.json │ │ │ ├── IQButtonBarArrowRight@2x.png │ │ │ └── IQButtonBarArrowRight@3x.png │ │ │ └── IQButtonBarArrowUp.imageset │ │ │ ├── Contents.json │ │ │ ├── IQButtonBarArrowUp@2x.png │ │ │ └── IQButtonBarArrowUp@3x.png │ ├── LICENSE.md │ └── README.md ├── Manifest.lock ├── Masonry │ ├── LICENSE │ ├── Masonry │ │ ├── MASCompositeConstraint.h │ │ ├── MASCompositeConstraint.m │ │ ├── MASConstraint+Private.h │ │ ├── MASConstraint.h │ │ ├── MASConstraint.m │ │ ├── MASConstraintMaker.h │ │ ├── MASConstraintMaker.m │ │ ├── MASLayoutConstraint.h │ │ ├── MASLayoutConstraint.m │ │ ├── MASUtilities.h │ │ ├── MASViewAttribute.h │ │ ├── MASViewAttribute.m │ │ ├── MASViewConstraint.h │ │ ├── MASViewConstraint.m │ │ ├── Masonry.h │ │ ├── NSArray+MASAdditions.h │ │ ├── NSArray+MASAdditions.m │ │ ├── NSArray+MASShorthandAdditions.h │ │ ├── NSLayoutConstraint+MASDebugAdditions.h │ │ ├── NSLayoutConstraint+MASDebugAdditions.m │ │ ├── View+MASAdditions.h │ │ ├── View+MASAdditions.m │ │ ├── View+MASShorthandAdditions.h │ │ ├── ViewController+MASAdditions.h │ │ └── ViewController+MASAdditions.m │ └── README.md ├── Pods.xcodeproj │ ├── project.pbxproj │ └── xcuserdata │ │ └── mac.xcuserdatad │ │ └── xcschemes │ │ ├── IQKeyboardManager-framework-IQKeyboardManager.xcscheme │ │ ├── IQKeyboardManager-framework.xcscheme │ │ ├── IQKeyboardManager-library-IQKeyboardManager.xcscheme │ │ ├── IQKeyboardManager-library.xcscheme │ │ ├── Masonry-framework.xcscheme │ │ ├── Masonry-library.xcscheme │ │ ├── Pods-DynamicInputView-DynamicInputViewUITests.xcscheme │ │ ├── Pods-DynamicInputView.xcscheme │ │ ├── Pods-DynamicInputViewTests.xcscheme │ │ └── xcschememanagement.plist └── Target Support Files │ ├── IQKeyboardManager-framework │ ├── IQKeyboardManager-framework-Info.plist │ ├── IQKeyboardManager-framework-dummy.m │ ├── IQKeyboardManager-framework-prefix.pch │ ├── IQKeyboardManager-framework-umbrella.h │ ├── IQKeyboardManager-framework.modulemap │ ├── IQKeyboardManager-framework.xcconfig │ └── ResourceBundle-IQKeyboardManager-IQKeyboardManager-framework-Info.plist │ ├── IQKeyboardManager-library │ ├── IQKeyboardManager-library-dummy.m │ ├── IQKeyboardManager-library-prefix.pch │ ├── IQKeyboardManager-library.xcconfig │ └── ResourceBundle-IQKeyboardManager-IQKeyboardManager-library-Info.plist │ ├── Masonry-framework │ ├── Masonry-framework-Info.plist │ ├── Masonry-framework-dummy.m │ ├── Masonry-framework-prefix.pch │ ├── Masonry-framework-umbrella.h │ ├── Masonry-framework.modulemap │ └── Masonry-framework.xcconfig │ ├── Masonry-library │ ├── Masonry-library-dummy.m │ ├── Masonry-library-prefix.pch │ └── Masonry-library.xcconfig │ ├── Pods-DynamicInputView-DynamicInputViewUITests │ ├── Pods-DynamicInputView-DynamicInputViewUITests-Info.plist │ ├── Pods-DynamicInputView-DynamicInputViewUITests-acknowledgements.markdown │ ├── Pods-DynamicInputView-DynamicInputViewUITests-acknowledgements.plist │ ├── Pods-DynamicInputView-DynamicInputViewUITests-dummy.m │ ├── Pods-DynamicInputView-DynamicInputViewUITests-frameworks-Debug-input-files.xcfilelist │ ├── Pods-DynamicInputView-DynamicInputViewUITests-frameworks-Debug-output-files.xcfilelist │ ├── Pods-DynamicInputView-DynamicInputViewUITests-frameworks-Release-input-files.xcfilelist │ ├── Pods-DynamicInputView-DynamicInputViewUITests-frameworks-Release-output-files.xcfilelist │ ├── Pods-DynamicInputView-DynamicInputViewUITests-frameworks.sh │ ├── Pods-DynamicInputView-DynamicInputViewUITests-umbrella.h │ ├── Pods-DynamicInputView-DynamicInputViewUITests.debug.xcconfig │ ├── Pods-DynamicInputView-DynamicInputViewUITests.modulemap │ └── Pods-DynamicInputView-DynamicInputViewUITests.release.xcconfig │ ├── Pods-DynamicInputView │ ├── Pods-DynamicInputView-Info.plist │ ├── Pods-DynamicInputView-acknowledgements.markdown │ ├── Pods-DynamicInputView-acknowledgements.plist │ ├── Pods-DynamicInputView-dummy.m │ ├── Pods-DynamicInputView-frameworks-Debug-input-files.xcfilelist │ ├── Pods-DynamicInputView-frameworks-Debug-output-files.xcfilelist │ ├── Pods-DynamicInputView-frameworks-Release-input-files.xcfilelist │ ├── Pods-DynamicInputView-frameworks-Release-output-files.xcfilelist │ ├── Pods-DynamicInputView-frameworks.sh │ ├── Pods-DynamicInputView-umbrella.h │ ├── Pods-DynamicInputView.debug.xcconfig │ ├── Pods-DynamicInputView.modulemap │ └── Pods-DynamicInputView.release.xcconfig │ └── Pods-DynamicInputViewTests │ ├── Pods-DynamicInputViewTests-Info.plist │ ├── Pods-DynamicInputViewTests-acknowledgements.markdown │ ├── Pods-DynamicInputViewTests-acknowledgements.plist │ ├── Pods-DynamicInputViewTests-dummy.m │ ├── Pods-DynamicInputViewTests-umbrella.h │ ├── Pods-DynamicInputViewTests.debug.xcconfig │ ├── Pods-DynamicInputViewTests.modulemap │ └── Pods-DynamicInputViewTests.release.xcconfig └── README.md /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shabake/GHDynamicInputView/1ae1f5533187d6c9f4758e2938ef325425c219e0/.DS_Store -------------------------------------------------------------------------------- /DynamicInputView.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /DynamicInputView.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /DynamicInputView.xcodeproj/project.xcworkspace/xcuserdata/mac.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shabake/GHDynamicInputView/1ae1f5533187d6c9f4758e2938ef325425c219e0/DynamicInputView.xcodeproj/project.xcworkspace/xcuserdata/mac.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /DynamicInputView.xcodeproj/xcuserdata/mac.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | DynamicInputView.xcscheme_^#shared#^_ 8 | 9 | orderHint 10 | 9 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /DynamicInputView.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /DynamicInputView.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /DynamicInputView.xcworkspace/xcuserdata/mac.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shabake/GHDynamicInputView/1ae1f5533187d6c9f4758e2938ef325425c219e0/DynamicInputView.xcworkspace/xcuserdata/mac.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /DynamicInputView.xcworkspace/xcuserdata/mac.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | -------------------------------------------------------------------------------- /DynamicInputView/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shabake/GHDynamicInputView/1ae1f5533187d6c9f4758e2938ef325425c219e0/DynamicInputView/.DS_Store -------------------------------------------------------------------------------- /DynamicInputView/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // DynamicInputView 4 | // 5 | // Created by mac on 2020/1/17. 6 | // Copyright © 2020 GHome. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (nonatomic , strong) UIWindow *window; 14 | 15 | @end 16 | 17 | -------------------------------------------------------------------------------- /DynamicInputView/AppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.m 3 | // DynamicInputView 4 | // 5 | // Created by mac on 2020/1/17. 6 | // Copyright © 2020 GHome. All rights reserved. 7 | // 8 | 9 | #import "AppDelegate.h" 10 | 11 | @interface AppDelegate () 12 | 13 | @end 14 | 15 | @implementation AppDelegate 16 | 17 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 18 | // Override point for customization after application launch. 19 | return YES; 20 | } 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /DynamicInputView/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images": [ 3 | { 4 | "size": "20x20", 5 | "idiom": "iphone", 6 | "filename": "icon-20@2x.png", 7 | "scale": "2x" 8 | }, 9 | { 10 | "size": "20x20", 11 | "idiom": "iphone", 12 | "filename": "icon-20@3x.png", 13 | "scale": "3x" 14 | }, 15 | { 16 | "size": "29x29", 17 | "idiom": "iphone", 18 | "filename": "icon-29.png", 19 | "scale": "1x" 20 | }, 21 | { 22 | "size": "29x29", 23 | "idiom": "iphone", 24 | "filename": "icon-29@2x.png", 25 | "scale": "2x" 26 | }, 27 | { 28 | "size": "29x29", 29 | "idiom": "iphone", 30 | "filename": "icon-29@3x.png", 31 | "scale": "3x" 32 | }, 33 | { 34 | "size": "40x40", 35 | "idiom": "iphone", 36 | "filename": "icon-40@2x.png", 37 | "scale": "2x" 38 | }, 39 | { 40 | "size": "40x40", 41 | "idiom": "iphone", 42 | "filename": "icon-40@3x.png", 43 | "scale": "3x" 44 | }, 45 | { 46 | "size": "60x60", 47 | "idiom": "iphone", 48 | "filename": "icon-60@2x.png", 49 | "scale": "2x" 50 | }, 51 | { 52 | "size": "60x60", 53 | "idiom": "iphone", 54 | "filename": "icon-60@3x.png", 55 | "scale": "3x" 56 | }, 57 | { 58 | "size": "20x20", 59 | "idiom": "ipad", 60 | "filename": "icon-20-ipad.png", 61 | "scale": "1x" 62 | }, 63 | { 64 | "size": "20x20", 65 | "idiom": "ipad", 66 | "filename": "icon-20@2x-ipad.png", 67 | "scale": "2x" 68 | }, 69 | { 70 | "size": "29x29", 71 | "idiom": "ipad", 72 | "filename": "icon-29-ipad.png", 73 | "scale": "1x" 74 | }, 75 | { 76 | "size": "29x29", 77 | "idiom": "ipad", 78 | "filename": "icon-29@2x-ipad.png", 79 | "scale": "2x" 80 | }, 81 | { 82 | "size": "40x40", 83 | "idiom": "ipad", 84 | "filename": "icon-40.png", 85 | "scale": "1x" 86 | }, 87 | { 88 | "size": "40x40", 89 | "idiom": "ipad", 90 | "filename": "icon-40@2x.png", 91 | "scale": "2x" 92 | }, 93 | { 94 | "size": "76x76", 95 | "idiom": "ipad", 96 | "filename": "icon-76.png", 97 | "scale": "1x" 98 | }, 99 | { 100 | "size": "76x76", 101 | "idiom": "ipad", 102 | "filename": "icon-76@2x.png", 103 | "scale": "2x" 104 | }, 105 | { 106 | "size": "83.5x83.5", 107 | "idiom": "ipad", 108 | "filename": "icon-83.5@2x.png", 109 | "scale": "2x" 110 | }, 111 | { 112 | "size": "1024x1024", 113 | "idiom": "ios-marketing", 114 | "filename": "icon-1024.png", 115 | "scale": "1x" 116 | } 117 | ], 118 | "info": { 119 | "version": 1, 120 | "author": "icon.wuruihong.com" 121 | } 122 | } -------------------------------------------------------------------------------- /DynamicInputView/Assets.xcassets/AppIcon.appiconset/icon-1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shabake/GHDynamicInputView/1ae1f5533187d6c9f4758e2938ef325425c219e0/DynamicInputView/Assets.xcassets/AppIcon.appiconset/icon-1024.png -------------------------------------------------------------------------------- /DynamicInputView/Assets.xcassets/AppIcon.appiconset/icon-20-ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shabake/GHDynamicInputView/1ae1f5533187d6c9f4758e2938ef325425c219e0/DynamicInputView/Assets.xcassets/AppIcon.appiconset/icon-20-ipad.png -------------------------------------------------------------------------------- /DynamicInputView/Assets.xcassets/AppIcon.appiconset/icon-20@2x-ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shabake/GHDynamicInputView/1ae1f5533187d6c9f4758e2938ef325425c219e0/DynamicInputView/Assets.xcassets/AppIcon.appiconset/icon-20@2x-ipad.png -------------------------------------------------------------------------------- /DynamicInputView/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shabake/GHDynamicInputView/1ae1f5533187d6c9f4758e2938ef325425c219e0/DynamicInputView/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png -------------------------------------------------------------------------------- /DynamicInputView/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shabake/GHDynamicInputView/1ae1f5533187d6c9f4758e2938ef325425c219e0/DynamicInputView/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png -------------------------------------------------------------------------------- /DynamicInputView/Assets.xcassets/AppIcon.appiconset/icon-29-ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shabake/GHDynamicInputView/1ae1f5533187d6c9f4758e2938ef325425c219e0/DynamicInputView/Assets.xcassets/AppIcon.appiconset/icon-29-ipad.png -------------------------------------------------------------------------------- /DynamicInputView/Assets.xcassets/AppIcon.appiconset/icon-29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shabake/GHDynamicInputView/1ae1f5533187d6c9f4758e2938ef325425c219e0/DynamicInputView/Assets.xcassets/AppIcon.appiconset/icon-29.png -------------------------------------------------------------------------------- /DynamicInputView/Assets.xcassets/AppIcon.appiconset/icon-29@2x-ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shabake/GHDynamicInputView/1ae1f5533187d6c9f4758e2938ef325425c219e0/DynamicInputView/Assets.xcassets/AppIcon.appiconset/icon-29@2x-ipad.png -------------------------------------------------------------------------------- /DynamicInputView/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shabake/GHDynamicInputView/1ae1f5533187d6c9f4758e2938ef325425c219e0/DynamicInputView/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png -------------------------------------------------------------------------------- /DynamicInputView/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shabake/GHDynamicInputView/1ae1f5533187d6c9f4758e2938ef325425c219e0/DynamicInputView/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png -------------------------------------------------------------------------------- /DynamicInputView/Assets.xcassets/AppIcon.appiconset/icon-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shabake/GHDynamicInputView/1ae1f5533187d6c9f4758e2938ef325425c219e0/DynamicInputView/Assets.xcassets/AppIcon.appiconset/icon-40.png -------------------------------------------------------------------------------- /DynamicInputView/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shabake/GHDynamicInputView/1ae1f5533187d6c9f4758e2938ef325425c219e0/DynamicInputView/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png -------------------------------------------------------------------------------- /DynamicInputView/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shabake/GHDynamicInputView/1ae1f5533187d6c9f4758e2938ef325425c219e0/DynamicInputView/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png -------------------------------------------------------------------------------- /DynamicInputView/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shabake/GHDynamicInputView/1ae1f5533187d6c9f4758e2938ef325425c219e0/DynamicInputView/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png -------------------------------------------------------------------------------- /DynamicInputView/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shabake/GHDynamicInputView/1ae1f5533187d6c9f4758e2938ef325425c219e0/DynamicInputView/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png -------------------------------------------------------------------------------- /DynamicInputView/Assets.xcassets/AppIcon.appiconset/icon-76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shabake/GHDynamicInputView/1ae1f5533187d6c9f4758e2938ef325425c219e0/DynamicInputView/Assets.xcassets/AppIcon.appiconset/icon-76.png -------------------------------------------------------------------------------- /DynamicInputView/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shabake/GHDynamicInputView/1ae1f5533187d6c9f4758e2938ef325425c219e0/DynamicInputView/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png -------------------------------------------------------------------------------- /DynamicInputView/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shabake/GHDynamicInputView/1ae1f5533187d6c9f4758e2938ef325425c219e0/DynamicInputView/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png -------------------------------------------------------------------------------- /DynamicInputView/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /DynamicInputView/Assets.xcassets/delete.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "delete.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /DynamicInputView/Assets.xcassets/delete.imageset/delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shabake/GHDynamicInputView/1ae1f5533187d6c9f4758e2938ef325425c219e0/DynamicInputView/Assets.xcassets/delete.imageset/delete.png -------------------------------------------------------------------------------- /DynamicInputView/Assets.xcassets/logo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "logo.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /DynamicInputView/Assets.xcassets/logo.imageset/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shabake/GHDynamicInputView/1ae1f5533187d6c9f4758e2938ef325425c219e0/DynamicInputView/Assets.xcassets/logo.imageset/logo.png -------------------------------------------------------------------------------- /DynamicInputView/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /DynamicInputView/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /DynamicInputView/Example/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shabake/GHDynamicInputView/1ae1f5533187d6c9f4758e2938ef325425c219e0/DynamicInputView/Example/.DS_Store -------------------------------------------------------------------------------- /DynamicInputView/Example/C/ExampleDynamicFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // ExampleDynamicInputInfoHeader.h 3 | // DynamicInputView 4 | // 5 | // Created by mac on 2020/1/18. 6 | // Copyright © 2020 GHome. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface ExampleDynamicFooter : UIView 14 | 15 | @property (nonatomic , copy) NSString *text; 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /DynamicInputView/Example/C/ExampleDynamicFooter.m: -------------------------------------------------------------------------------- 1 | // 2 | // ExampleDynamicInputInfoHeader.m 3 | // DynamicInputView 4 | // 5 | // Created by mac on 2020/1/18. 6 | // Copyright © 2020 GHome. All rights reserved. 7 | // 8 | 9 | #import "ExampleDynamicFooter.h" 10 | 11 | @interface ExampleDynamicFooter() 12 | 13 | @property (nonatomic , strong) UILabel *info; 14 | @end 15 | 16 | @implementation ExampleDynamicFooter 17 | 18 | - (void)setText:(NSString *)text { 19 | self.info.text = text; 20 | } 21 | 22 | - (instancetype)initWithFrame:(CGRect)frame { 23 | if (self == [super initWithFrame:frame]) { 24 | [self setupUI]; 25 | self.backgroundColor = [UIColor whiteColor]; 26 | } 27 | return self; 28 | } 29 | 30 | - (void)setupUI { 31 | [self addSubview:self.info]; 32 | [self.info mas_makeConstraints:^(MASConstraintMaker *make) { 33 | make.left.equalTo(self).offset(10); 34 | make.right.equalTo(self).offset(-10); 35 | make.top.equalTo(self).offset(10); 36 | }]; 37 | } 38 | 39 | - (UILabel *)info { 40 | if (_info == nil) { 41 | _info = [[UILabel alloc]init]; 42 | _info.numberOfLines = 0; 43 | _info.font = [UIFont systemFontOfSize:14]; 44 | } 45 | return _info; 46 | } 47 | 48 | @end 49 | -------------------------------------------------------------------------------- /DynamicInputView/Example/C/ExampleDynamicHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // ExampleDynamicHeader.h 3 | // DynamicInputView 4 | // 5 | // Created by mac on 2020/1/19. 6 | // Copyright © 2020 GHome. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface ExampleDynamicHeader : UIView 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /DynamicInputView/Example/C/ExampleDynamicHeader.m: -------------------------------------------------------------------------------- 1 | // 2 | // ExampleDynamicHeader.m 3 | // DynamicInputView 4 | // 5 | // Created by mac on 2020/1/19. 6 | // Copyright © 2020 GHome. All rights reserved. 7 | // 8 | 9 | #import "ExampleDynamicHeader.h" 10 | 11 | @interface ExampleDynamicHeader() 12 | 13 | @property (nonatomic , strong) UILabel *info; 14 | 15 | @end 16 | @implementation ExampleDynamicHeader 17 | 18 | - (void)setText:(NSString *)text { 19 | self.info.text = text; 20 | } 21 | 22 | - (instancetype)initWithFrame:(CGRect)frame { 23 | if (self == [super initWithFrame:frame]) { 24 | [self setupUI]; 25 | self.backgroundColor = [UIColor whiteColor]; 26 | } 27 | return self; 28 | } 29 | 30 | - (void)setupUI { 31 | [self addSubview:self.info]; 32 | [self.info mas_makeConstraints:^(MASConstraintMaker *make) { 33 | make.left.equalTo(self).offset(10); 34 | make.right.equalTo(self).offset(-10); 35 | make.top.equalTo(self).offset(10); 36 | }]; 37 | } 38 | 39 | - (UILabel *)info { 40 | if (_info == nil) { 41 | _info = [[UILabel alloc]init]; 42 | _info.numberOfLines = 0; 43 | _info.text = @"开发环境: Xcode 11.3\n系统: iOS13\n语言: Object-C\n需求: 实现点击删除输入内容,动态高度。"; 44 | _info.font = [UIFont systemFontOfSize:14]; 45 | } 46 | return _info; 47 | } 48 | 49 | @end 50 | -------------------------------------------------------------------------------- /DynamicInputView/Example/C/ExampleDynamicInputCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // ExampleDynamicInputCell.h 3 | // DynamicInputView 4 | // 5 | // Created by mac on 2020/1/17. 6 | // Copyright © 2020 GHome. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | typedef void (^ExampleDynamicInputCellGetHeightBlock)(float height , NSString *text); 14 | 15 | @interface ExampleDynamicInputCell : UITableViewCell 16 | 17 | /** 18 | * 获取并返回cell的高度 19 | */ 20 | @property (nonatomic , copy) ExampleDynamicInputCellGetHeightBlock getHeightBlock; 21 | 22 | @end 23 | 24 | NS_ASSUME_NONNULL_END 25 | -------------------------------------------------------------------------------- /DynamicInputView/Example/C/ExampleDynamicInputCell.m: -------------------------------------------------------------------------------- 1 | // 2 | // ExampleDynamicInputCell.m 3 | // DynamicInputView 4 | // 5 | // Created by mac on 2020/1/17. 6 | // Copyright © 2020 GHome. All rights reserved. 7 | // 8 | 9 | #import "ExampleDynamicInputCell.h" 10 | #import "GHDynamicInputView.h" 11 | 12 | @interface ExampleDynamicInputCell() 13 | 14 | @property (nonatomic , strong) GHDynamicInputView *dynamicInputView; 15 | @property (nonatomic , assign) float height; 16 | 17 | @end 18 | 19 | @implementation ExampleDynamicInputCell 20 | 21 | - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { 22 | if (self == [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { 23 | [self setupUI]; 24 | self.backgroundColor = [UIColor whiteColor]; 25 | self.selectionStyle = UITableViewCellSelectionStyleNone; 26 | } 27 | return self; 28 | } 29 | 30 | - (void)setupUI { 31 | [self.contentView addSubview:self.dynamicInputView]; 32 | [self.dynamicInputView mas_makeConstraints:^(MASConstraintMaker *make) { 33 | make.left.top.equalTo(self.contentView).offset(10); 34 | make.right.bottom.equalTo(self.contentView).offset(-10); 35 | }]; 36 | 37 | weakself(self); 38 | self.dynamicInputView.getHeightBlock = ^(float height, NSString * _Nonnull text) { 39 | if (weakSelf.getHeightBlock) { 40 | weakSelf.getHeightBlock(height + 20,text); 41 | } 42 | }; 43 | } 44 | 45 | - (GHDynamicInputView *)dynamicInputView { 46 | if (_dynamicInputView == nil) { 47 | _dynamicInputView = [[GHDynamicInputView alloc]init]; 48 | _dynamicInputView.layer.borderColor = [UIColor lightGrayColor].CGColor; 49 | _dynamicInputView.layer.borderWidth = 1; 50 | _dynamicInputView.layer.masksToBounds = YES; 51 | _dynamicInputView.layer.cornerRadius = 5; 52 | _dynamicInputView.imageName = @"delete"; 53 | _dynamicInputView.placeholder = @"请输入内容"; 54 | } 55 | return _dynamicInputView; 56 | } 57 | 58 | @end 59 | -------------------------------------------------------------------------------- /DynamicInputView/Example/C/ExampleDynamicInputInfoView.h: -------------------------------------------------------------------------------- 1 | // 2 | // ExampleDynamicInputInfoView.h 3 | // DynamicInputView 4 | // 5 | // Created by mac on 2020/1/18. 6 | // Copyright © 2020 GHome. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface ExampleDynamicInputInfoView : UIView 14 | 15 | @property (nonatomic , copy) NSString *infoStr; 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /DynamicInputView/Example/C/ExampleDynamicInputInfoView.m: -------------------------------------------------------------------------------- 1 | // 2 | // ExampleDynamicInputInfoView.m 3 | // DynamicInputView 4 | // 5 | // Created by mac on 2020/1/18. 6 | // Copyright © 2020 GHome. All rights reserved. 7 | // 8 | 9 | #import "ExampleDynamicInputInfoView.h" 10 | 11 | @interface ExampleDynamicInputInfoView() 12 | 13 | @property (nonatomic , strong) UILabel *info; 14 | @property (nonatomic , strong) UIView *line; 15 | 16 | @end 17 | 18 | @implementation ExampleDynamicInputInfoView 19 | 20 | - (void)setInfoStr:(NSString *)infoStr { 21 | self.info.text = infoStr; 22 | } 23 | 24 | - (instancetype)initWithFrame:(CGRect)frame { 25 | if (self == [super initWithFrame:frame]) { 26 | [self setupUI]; 27 | } 28 | return self; 29 | } 30 | 31 | - (void)setupUI { 32 | 33 | [self addSubview:self.line]; 34 | [self.line mas_makeConstraints:^(MASConstraintMaker *make) { 35 | make.left.equalTo(self).offset(10); 36 | make.height.equalTo(self).multipliedBy(0.5); 37 | make.centerY.equalTo(self); 38 | make.width.equalTo(@4); 39 | }]; 40 | 41 | [self addSubview:self.info]; 42 | [self.info mas_makeConstraints:^(MASConstraintMaker *make) { 43 | make.left.equalTo(self.line.mas_right).offset(10); 44 | make.right.equalTo(self).offset(-10); 45 | make.centerY.equalTo(self.line); 46 | }]; 47 | } 48 | 49 | - (UIView *)line { 50 | if (_line == nil) { 51 | _line = [[UIView alloc]init]; 52 | _line.backgroundColor = KMainColor; 53 | } 54 | return _line; 55 | } 56 | 57 | - (UILabel *)info { 58 | if (_info == nil) { 59 | _info = [[UILabel alloc]init]; 60 | _info.font = [UIFont systemFontOfSize:12 weight:1]; 61 | } 62 | return _info; 63 | } 64 | 65 | @end 66 | -------------------------------------------------------------------------------- /DynamicInputView/Example/C/ExampleDynamicSectionFooter.h: -------------------------------------------------------------------------------- 1 | // 2 | // ExampleDynamicFooter.h 3 | // DynamicInputView 4 | // 5 | // Created by mac on 2020/1/19. 6 | // Copyright © 2020 GHome. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | typedef void (^ExampleDynamicSectionFooterDidClickSureBlock)(void); 14 | 15 | @interface ExampleDynamicSectionFooter : UIView 16 | 17 | @property (nonatomic , copy) ExampleDynamicSectionFooterDidClickSureBlock didClickSureBlock; 18 | 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /DynamicInputView/Example/C/ExampleDynamicSectionFooter.m: -------------------------------------------------------------------------------- 1 | // 2 | // ExampleDynamicFooter.m 3 | // DynamicInputView 4 | // 5 | // Created by mac on 2020/1/19. 6 | // Copyright © 2020 GHome. All rights reserved. 7 | // 8 | 9 | #import "ExampleDynamicSectionFooter.h" 10 | 11 | @interface ExampleDynamicSectionFooter () 12 | 13 | @property (nonatomic , strong) UIButton *sure; 14 | @end 15 | @implementation ExampleDynamicSectionFooter 16 | 17 | 18 | - (instancetype)initWithFrame:(CGRect)frame { 19 | if (self == [super initWithFrame:frame]) { 20 | [self setupUI]; 21 | self.backgroundColor = [UIColor whiteColor]; 22 | } 23 | return self; 24 | } 25 | 26 | - (void)setupUI { 27 | [self addSubview:self.sure]; 28 | [self.sure mas_makeConstraints:^(MASConstraintMaker *make) { 29 | make.left.top.equalTo(self).offset(10); 30 | make.right.bottom.equalTo(self).offset(-10); 31 | }]; 32 | } 33 | 34 | - (void)clickSure { 35 | if (self.didClickSureBlock) { 36 | self.didClickSureBlock(); 37 | } 38 | } 39 | 40 | - (UIButton *)sure { 41 | if (_sure == nil) { 42 | _sure = [[UIButton alloc]init]; 43 | _sure.backgroundColor = KMainColor; 44 | [_sure setTitle:@"确定" forState:UIControlStateNormal]; 45 | [_sure setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; 46 | _sure.layer.masksToBounds = YES; 47 | [_sure addTarget:self action:@selector(clickSure) forControlEvents:UIControlEventTouchUpInside]; 48 | _sure.layer.cornerRadius = 8; 49 | } 50 | return _sure; 51 | } 52 | 53 | @end 54 | -------------------------------------------------------------------------------- /DynamicInputView/Example/V/ExampleViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ExampleViewController.h 3 | // DynamicInputView 4 | // 5 | // Created by mac on 2020/1/17. 6 | // Copyright © 2020 GHome. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface ExampleViewController : UIViewController 14 | 15 | @end 16 | 17 | NS_ASSUME_NONNULL_END 18 | -------------------------------------------------------------------------------- /DynamicInputView/Example/V/ExampleViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // ExampleViewController.m 3 | // DynamicInputView 4 | // 5 | // Created by mac on 2020/1/17. 6 | // Copyright © 2020 GHome. All rights reserved. 7 | // 8 | 9 | #import "ExampleViewController.h" 10 | #import "ExampleDynamicInputCell.h" 11 | #import "ExampleDynamicInputInfoView.h" 12 | #import "ExampleDynamicFooter.h" 13 | #import "ExampleDynamicSectionFooter.h" 14 | #import "ExampleDynamicHeader.h" 15 | 16 | @interface ExampleViewController () 17 | 18 | @property (nonatomic , strong) UITableView *tableView; 19 | @property (nonatomic , assign) float height; 20 | @property (nonatomic , strong) ExampleDynamicFooter *footer; 21 | @property (nonatomic , strong) ExampleDynamicHeader *header; 22 | 23 | @end 24 | 25 | @implementation ExampleViewController 26 | 27 | - (void)viewDidLoad { 28 | [super viewDidLoad]; 29 | self.navigationItem.title = @"GHDynamicInputView"; 30 | [self setupUI]; 31 | } 32 | 33 | - (void)setupUI { 34 | [self.view addSubview:self.tableView]; 35 | self.tableView.tableHeaderView = self.header; 36 | self.tableView.tableFooterView = self.footer; 37 | } 38 | 39 | - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 40 | return 1; 41 | } 42 | 43 | - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 44 | return 1; 45 | } 46 | 47 | - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { 48 | return 34; 49 | } 50 | 51 | - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { 52 | return 64.01f; 53 | } 54 | 55 | - (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section { 56 | ExampleDynamicSectionFooter *view = [[ExampleDynamicSectionFooter alloc]init]; 57 | weakself(self); 58 | view.didClickSureBlock = ^{ 59 | [weakSelf.view endEditing:YES]; 60 | }; 61 | return view; 62 | } 63 | 64 | - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { 65 | if (section == 0) { 66 | ExampleDynamicInputInfoView *view = [[ExampleDynamicInputInfoView alloc]init]; 67 | view.infoStr = @"动态计算高度"; 68 | return view; 69 | } 70 | return nil; 71 | } 72 | 73 | - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 74 | return self.height > 0 ?self.height:60; 75 | } 76 | 77 | - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 78 | ExampleDynamicInputCell *cell = [tableView dequeueReusableCellWithIdentifier:@"ExampleDynamicInputCellID"]; 79 | weakself(self); 80 | cell.getHeightBlock = ^(float height, NSString * _Nonnull text) { 81 | weakSelf.height = height; 82 | weakSelf.footer.text = text; 83 | [weakSelf getLastFrameWithString:text]; 84 | [weakSelf.tableView beginUpdates]; 85 | [weakSelf.tableView endUpdates]; 86 | }; 87 | return cell; 88 | } 89 | 90 | - (void)getLastFrameWithString:(NSString *)string { 91 | CGRect frame = self.footer.frame; 92 | CGSize headerSize = [NSString sizeWithText:string andFont:[UIFont systemFontOfSize:14] andMaxSize:CGSizeMake(kScreenWidth - 20, CGFLOAT_MAX)]; 93 | frame.size.height = headerSize.height + 20; 94 | [UIView animateWithDuration:0.25 animations:^{ 95 | self.footer.frame = frame; 96 | }]; 97 | } 98 | 99 | - (UITableView *)tableView { 100 | if (_tableView == nil) { 101 | _tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height) style:UITableViewStyleGrouped]; 102 | _tableView.delegate = self; 103 | _tableView.dataSource = self; 104 | _tableView.showsVerticalScrollIndicator = NO; 105 | _tableView.keyboardDismissMode = UIScrollViewKeyboardDismissModeOnDrag; 106 | _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; 107 | [_tableView registerClass:[ExampleDynamicInputCell class] forCellReuseIdentifier:@"ExampleDynamicInputCellID"]; 108 | } 109 | return _tableView; 110 | } 111 | 112 | - (ExampleDynamicHeader *)header { 113 | if (_header == nil) { 114 | _header = [[ExampleDynamicHeader alloc]initWithFrame:CGRectMake(0, 0, 0, 90.01)]; 115 | } 116 | return _header; 117 | } 118 | 119 | - (ExampleDynamicFooter *)footer { 120 | if (_footer == nil) { 121 | _footer = [[ExampleDynamicFooter alloc]initWithFrame:CGRectMake(0, 0, 0, 60.01)]; 122 | } 123 | return _footer; 124 | } 125 | 126 | @end 127 | -------------------------------------------------------------------------------- /DynamicInputView/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | LSRequiresIPhoneOS 22 | 23 | UILaunchStoryboardName 24 | LaunchScreen 25 | UIMainStoryboardFile 26 | Main 27 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | 35 | UISupportedInterfaceOrientations~ipad 36 | 37 | UIInterfaceOrientationPortrait 38 | UIInterfaceOrientationPortraitUpsideDown 39 | UIInterfaceOrientationLandscapeLeft 40 | UIInterfaceOrientationLandscapeRight 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /DynamicInputView/NSString+GHome.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSString+GHome.h 3 | // DynamicInputView 4 | // 5 | // Created by mac on 2020/1/18. 6 | // Copyright © 2020 GHome. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface NSString (GHome) 14 | 15 | + (CGSize)sizeWithText:(NSString *)text andFont:(UIFont *)font andMaxSize:(CGSize)maxSize; 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /DynamicInputView/NSString+GHome.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSString+GHome.m 3 | // DynamicInputView 4 | // 5 | // Created by mac on 2020/1/18. 6 | // Copyright © 2020 GHome. All rights reserved. 7 | // 8 | 9 | #import "NSString+GHome.h" 10 | 11 | @implementation NSString (GHome) 12 | 13 | + (CGSize)sizeWithText:(NSString *)text andFont:(UIFont *)font andMaxSize:(CGSize)maxSize { 14 | CGSize expectedLabelSize = CGSizeZero; 15 | 16 | NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; 17 | paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping; 18 | [paragraphStyle setLineSpacing:0]; 19 | NSDictionary *attributes = @{NSFontAttributeName:font, NSParagraphStyleAttributeName:paragraphStyle.copy}; 20 | 21 | expectedLabelSize = [text boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:attributes context:nil].size; 22 | 23 | return CGSizeMake(ceil(expectedLabelSize.width), ceil(expectedLabelSize.height)); 24 | } 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /DynamicInputView/PrefixHeader.pch: -------------------------------------------------------------------------------- 1 | // 2 | // PrefixHeader.pch 3 | // DynamicInputView 4 | // 5 | // Created by mac on 2020/1/18. 6 | // Copyright © 2020 GHome. All rights reserved. 7 | // 8 | 9 | #ifndef PrefixHeader_pch 10 | #define PrefixHeader_pch 11 | 12 | #import "Masonry.h" 13 | #import "NSString+GHome.h" 14 | 15 | #define kISIphoneX [UIScreen mainScreen].bounds.size.height >= 812.0f 16 | #define kSafeStatusHeight ((kISIphoneX) ? 44 : 20) 17 | #define kSafeNavHeight ((kISIphoneX) ? 88 : 64) 18 | #define kSafeTabbarHeight ((kISIphoneX) ? 83 : 49) 19 | #define kSafeBottomHeight ((kISIphoneX) ? 34 : 0) 20 | #define kScreenWidth [UIScreen mainScreen].bounds.size.width 21 | #define kScreenHeight [UIScreen mainScreen].bounds.size.height 22 | #define weakself(self) __weak __typeof(self) weakSelf = self 23 | 24 | #define UIColorFromRGB(rgbValue) UIColorFromRGBA(rgbValue,1.0) 25 | 26 | #define UIColorFromRGBA(rgbValue,a) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:a] 27 | 28 | #ifdef DEBUG 29 | #define NSLog(format, ...) printf("%s\n", [[NSString stringWithFormat:(format), ##__VA_ARGS__] UTF8String]); 30 | #else 31 | #define NSLog(...) {} 32 | #endif 33 | 34 | #define KAlert(title,msg) [[[UIAlertView alloc] initWithTitle:title message:msg delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil] show] 35 | 36 | #define KMainColor UIColorFromRGB(0x017fff) 37 | 38 | #endif /* PrefixHeader_pch */ 39 | -------------------------------------------------------------------------------- /DynamicInputView/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // DynamicInputView 4 | // 5 | // Created by mac on 2020/1/17. 6 | // Copyright © 2020 GHome. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | NSString * appDelegateClassName; 14 | @autoreleasepool { 15 | // Setup code that might create autoreleased objects goes here. 16 | appDelegateClassName = NSStringFromClass([AppDelegate class]); 17 | } 18 | return UIApplicationMain(argc, argv, nil, appDelegateClassName); 19 | } 20 | -------------------------------------------------------------------------------- /DynamicInputViewTests/DynamicInputViewTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // DynamicInputViewTests.m 3 | // DynamicInputViewTests 4 | // 5 | // Created by mac on 2020/1/17. 6 | // Copyright © 2020 GHome. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface DynamicInputViewTests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation DynamicInputViewTests 16 | 17 | - (void)setUp { 18 | // Put setup code here. This method is called before the invocation of each test method in the class. 19 | } 20 | 21 | - (void)tearDown { 22 | // Put teardown code here. This method is called after the invocation of each test method in the class. 23 | } 24 | 25 | - (void)testExample { 26 | // This is an example of a functional test case. 27 | // Use XCTAssert and related functions to verify your tests produce the correct results. 28 | } 29 | 30 | - (void)testPerformanceExample { 31 | // This is an example of a performance test case. 32 | [self measureBlock:^{ 33 | // Put the code you want to measure the time of here. 34 | }]; 35 | } 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /DynamicInputViewTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /DynamicInputViewUITests/DynamicInputViewUITests.m: -------------------------------------------------------------------------------- 1 | // 2 | // DynamicInputViewUITests.m 3 | // DynamicInputViewUITests 4 | // 5 | // Created by mac on 2020/1/17. 6 | // Copyright © 2020 GHome. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface DynamicInputViewUITests : XCTestCase 12 | 13 | @end 14 | 15 | @implementation DynamicInputViewUITests 16 | 17 | - (void)setUp { 18 | // Put setup code here. This method is called before the invocation of each test method in the class. 19 | 20 | // In UI tests it is usually best to stop immediately when a failure occurs. 21 | self.continueAfterFailure = NO; 22 | 23 | // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. 24 | } 25 | 26 | - (void)tearDown { 27 | // Put teardown code here. This method is called after the invocation of each test method in the class. 28 | } 29 | 30 | - (void)testExample { 31 | // UI tests must launch the application that they test. 32 | XCUIApplication *app = [[XCUIApplication alloc] init]; 33 | [app launch]; 34 | 35 | // Use recording to get started writing UI tests. 36 | // Use XCTAssert and related functions to verify your tests produce the correct results. 37 | } 38 | 39 | - (void)testLaunchPerformance { 40 | if (@available(macOS 10.15, iOS 13.0, tvOS 13.0, *)) { 41 | // This measures how long it takes to launch your application. 42 | [self measureWithMetrics:@[XCTOSSignpostMetric.applicationLaunchMetric] block:^{ 43 | [[[XCUIApplication alloc] init] launch]; 44 | }]; 45 | } 46 | } 47 | 48 | @end 49 | -------------------------------------------------------------------------------- /DynamicInputViewUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /GHDynamicInputView/GHDynamicInputView.h: -------------------------------------------------------------------------------- 1 | // 2 | // GHDynamicInputView.h 3 | // DynamicInputView 4 | // 5 | // Created by mac on 2020/1/17. 6 | // Copyright © 2020 GHome. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @class GHDynamicInputView; 14 | 15 | typedef void (^GHDynamicInputViewGetHeightBlock)(float height ,NSString *text); 16 | 17 | @interface GHDynamicInputView : UIView 18 | 19 | /** 20 | * 获取高度回调 21 | */ 22 | @property (nonatomic , copy) GHDynamicInputViewGetHeightBlock getHeightBlock; 23 | 24 | /** 25 | * 字号 默认14 26 | */ 27 | @property (nonatomic , strong) UIFont *font; 28 | 29 | /** 30 | * inputViewbackgroundColor 默认clearColor 31 | */ 32 | @property (nonatomic , strong) UIColor *inputViewbackgroundColor; 33 | 34 | /** 35 | * imageName 36 | */ 37 | @property (nonatomic , copy) NSString *imageName; 38 | 39 | /** 40 | * 获取用户输入内容 41 | */ 42 | - (NSString *)getInputText; 43 | 44 | /** 45 | * 获取用户输入内容 46 | */ 47 | @property (nonatomic , copy) NSString *inputText; 48 | 49 | /** 50 | * 占位内容 51 | */ 52 | @property (nonatomic , copy) NSString *placeholder; 53 | 54 | @end 55 | 56 | 57 | 58 | NS_ASSUME_NONNULL_END 59 | -------------------------------------------------------------------------------- /GHDynamicInputView/GHLabel.h: -------------------------------------------------------------------------------- 1 | // 2 | // GHLabel.h 3 | // DynamicInputView 4 | // 5 | // Created by mac on 2020/4/14. 6 | // Copyright © 2020 GHome. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | typedef enum { 14 | VerticalAlignmentTop = 0, // default 15 | VerticalAlignmentMiddle, 16 | VerticalAlignmentBottom, 17 | } VerticalAlignment; 18 | 19 | @interface GHLabel : UILabel 20 | 21 | @property (nonatomic) VerticalAlignment verticalAlignment; 22 | 23 | @end 24 | 25 | NS_ASSUME_NONNULL_END 26 | -------------------------------------------------------------------------------- /GHDynamicInputView/GHLabel.m: -------------------------------------------------------------------------------- 1 | // 2 | // GHLabel.m 3 | // DynamicInputView 4 | // 5 | // Created by mac on 2020/4/14. 6 | // Copyright © 2020 GHome. All rights reserved. 7 | // 8 | 9 | #import "GHLabel.h" 10 | 11 | @interface GHLabel() 12 | 13 | @end 14 | 15 | @implementation GHLabel 16 | 17 | @synthesize verticalAlignment = verticalAlignment_; 18 | 19 | - (id)initWithFrame:(CGRect)frame { 20 | if (self = [super initWithFrame:frame]) { 21 | self.verticalAlignment = VerticalAlignmentMiddle; 22 | } 23 | return self; 24 | } 25 | 26 | - (void)setVerticalAlignment:(VerticalAlignment)verticalAlignment { 27 | verticalAlignment_ = verticalAlignment; 28 | [self setNeedsDisplay]; 29 | } 30 | 31 | - (CGRect)textRectForBounds:(CGRect)bounds limitedToNumberOfLines:(NSInteger)numberOfLines { 32 | CGRect textRect = [super textRectForBounds:bounds limitedToNumberOfLines:numberOfLines]; 33 | textRect.origin.x = 3; 34 | switch (self.verticalAlignment) { 35 | case VerticalAlignmentTop: 36 | textRect.origin.y = bounds.origin.y; 37 | break; 38 | case VerticalAlignmentBottom: 39 | textRect.origin.y = bounds.origin.y + bounds.size.height - textRect.size.height; 40 | break; 41 | case VerticalAlignmentMiddle: 42 | // Fall through. 43 | default: 44 | textRect.origin.y = bounds.origin.y + (bounds.size.height - textRect.size.height) / 2.0; 45 | } 46 | return textRect; 47 | } 48 | 49 | - (void)drawTextInRect:(CGRect)requestedRect { 50 | CGRect actualRect = [self textRectForBounds:requestedRect limitedToNumberOfLines:self.numberOfLines]; 51 | [super drawTextInRect:actualRect]; 52 | } 53 | 54 | @end 55 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 GHome 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Podfile: -------------------------------------------------------------------------------- 1 | # Uncomment the next line to define a global platform for your project 2 | platform :ios, '9.0' 3 | 4 | inhibit_all_warnings! 5 | 6 | pod 'Masonry', '1.0.0' 7 | pod 'IQKeyboardManager', '6.5.4' 8 | 9 | target 'DynamicInputView' do 10 | # Comment the next line if you don't want to use dynamic frameworks 11 | use_frameworks! 12 | 13 | # Pods for DynamicInputView 14 | 15 | target 'DynamicInputViewTests' do 16 | inherit! :search_paths 17 | # Pods for testing 18 | end 19 | 20 | target 'DynamicInputViewUITests' do 21 | # Pods for testing 22 | end 23 | 24 | end 25 | -------------------------------------------------------------------------------- /Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - IQKeyboardManager (6.5.4) 3 | - Masonry (1.0.0) 4 | 5 | DEPENDENCIES: 6 | - IQKeyboardManager (= 6.5.4) 7 | - Masonry (= 1.0.0) 8 | 9 | SPEC REPOS: 10 | trunk: 11 | - IQKeyboardManager 12 | - Masonry 13 | 14 | SPEC CHECKSUMS: 15 | IQKeyboardManager: 72b359cd7e777e3a984cedbe05f8da45320cbb63 16 | Masonry: b529bb169217897b6354d4b56b1fada6d475b13d 17 | 18 | PODFILE CHECKSUM: 375f2ce0155051f93fd1e85b9d4b50a2ea4b964c 19 | 20 | COCOAPODS: 1.8.4 21 | -------------------------------------------------------------------------------- /Pods/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shabake/GHDynamicInputView/1ae1f5533187d6c9f4758e2938ef325425c219e0/Pods/.DS_Store -------------------------------------------------------------------------------- /Pods/Headers/Private/IQKeyboardManager/IQBarButtonItem.h: -------------------------------------------------------------------------------- 1 | ../../../IQKeyboardManager/IQKeyboardManager/IQToolbar/IQBarButtonItem.h -------------------------------------------------------------------------------- /Pods/Headers/Private/IQKeyboardManager/IQKeyboardManager.h: -------------------------------------------------------------------------------- 1 | ../../../IQKeyboardManager/IQKeyboardManager/IQKeyboardManager.h -------------------------------------------------------------------------------- /Pods/Headers/Private/IQKeyboardManager/IQKeyboardManagerConstants.h: -------------------------------------------------------------------------------- 1 | ../../../IQKeyboardManager/IQKeyboardManager/Constants/IQKeyboardManagerConstants.h -------------------------------------------------------------------------------- /Pods/Headers/Private/IQKeyboardManager/IQKeyboardManagerConstantsInternal.h: -------------------------------------------------------------------------------- 1 | ../../../IQKeyboardManager/IQKeyboardManager/Constants/IQKeyboardManagerConstantsInternal.h -------------------------------------------------------------------------------- /Pods/Headers/Private/IQKeyboardManager/IQKeyboardReturnKeyHandler.h: -------------------------------------------------------------------------------- 1 | ../../../IQKeyboardManager/IQKeyboardManager/IQKeyboardReturnKeyHandler.h -------------------------------------------------------------------------------- /Pods/Headers/Private/IQKeyboardManager/IQNSArray+Sort.h: -------------------------------------------------------------------------------- 1 | ../../../IQKeyboardManager/IQKeyboardManager/Categories/IQNSArray+Sort.h -------------------------------------------------------------------------------- /Pods/Headers/Private/IQKeyboardManager/IQPreviousNextView.h: -------------------------------------------------------------------------------- 1 | ../../../IQKeyboardManager/IQKeyboardManager/IQToolbar/IQPreviousNextView.h -------------------------------------------------------------------------------- /Pods/Headers/Private/IQKeyboardManager/IQTextView.h: -------------------------------------------------------------------------------- 1 | ../../../IQKeyboardManager/IQKeyboardManager/IQTextView/IQTextView.h -------------------------------------------------------------------------------- /Pods/Headers/Private/IQKeyboardManager/IQTitleBarButtonItem.h: -------------------------------------------------------------------------------- 1 | ../../../IQKeyboardManager/IQKeyboardManager/IQToolbar/IQTitleBarButtonItem.h -------------------------------------------------------------------------------- /Pods/Headers/Private/IQKeyboardManager/IQToolbar.h: -------------------------------------------------------------------------------- 1 | ../../../IQKeyboardManager/IQKeyboardManager/IQToolbar/IQToolbar.h -------------------------------------------------------------------------------- /Pods/Headers/Private/IQKeyboardManager/IQUIScrollView+Additions.h: -------------------------------------------------------------------------------- 1 | ../../../IQKeyboardManager/IQKeyboardManager/Categories/IQUIScrollView+Additions.h -------------------------------------------------------------------------------- /Pods/Headers/Private/IQKeyboardManager/IQUITextFieldView+Additions.h: -------------------------------------------------------------------------------- 1 | ../../../IQKeyboardManager/IQKeyboardManager/Categories/IQUITextFieldView+Additions.h -------------------------------------------------------------------------------- /Pods/Headers/Private/IQKeyboardManager/IQUIView+Hierarchy.h: -------------------------------------------------------------------------------- 1 | ../../../IQKeyboardManager/IQKeyboardManager/Categories/IQUIView+Hierarchy.h -------------------------------------------------------------------------------- /Pods/Headers/Private/IQKeyboardManager/IQUIView+IQKeyboardToolbar.h: -------------------------------------------------------------------------------- 1 | ../../../IQKeyboardManager/IQKeyboardManager/IQToolbar/IQUIView+IQKeyboardToolbar.h -------------------------------------------------------------------------------- /Pods/Headers/Private/IQKeyboardManager/IQUIViewController+Additions.h: -------------------------------------------------------------------------------- 1 | ../../../IQKeyboardManager/IQKeyboardManager/Categories/IQUIViewController+Additions.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/MASCompositeConstraint.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASCompositeConstraint.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/MASConstraint+Private.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASConstraint+Private.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/MASConstraint.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASConstraint.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/MASConstraintMaker.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASConstraintMaker.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/MASLayoutConstraint.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASLayoutConstraint.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/MASUtilities.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASUtilities.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/MASViewAttribute.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASViewAttribute.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/MASViewConstraint.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASViewConstraint.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/Masonry.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/Masonry.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/NSArray+MASAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/NSArray+MASAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/NSArray+MASShorthandAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/NSArray+MASShorthandAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/NSLayoutConstraint+MASDebugAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/NSLayoutConstraint+MASDebugAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/View+MASAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/View+MASAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/View+MASShorthandAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/View+MASShorthandAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Masonry/ViewController+MASAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/ViewController+MASAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Public/IQKeyboardManager/IQBarButtonItem.h: -------------------------------------------------------------------------------- 1 | ../../../IQKeyboardManager/IQKeyboardManager/IQToolbar/IQBarButtonItem.h -------------------------------------------------------------------------------- /Pods/Headers/Public/IQKeyboardManager/IQKeyboardManager.h: -------------------------------------------------------------------------------- 1 | ../../../IQKeyboardManager/IQKeyboardManager/IQKeyboardManager.h -------------------------------------------------------------------------------- /Pods/Headers/Public/IQKeyboardManager/IQKeyboardManagerConstants.h: -------------------------------------------------------------------------------- 1 | ../../../IQKeyboardManager/IQKeyboardManager/Constants/IQKeyboardManagerConstants.h -------------------------------------------------------------------------------- /Pods/Headers/Public/IQKeyboardManager/IQKeyboardReturnKeyHandler.h: -------------------------------------------------------------------------------- 1 | ../../../IQKeyboardManager/IQKeyboardManager/IQKeyboardReturnKeyHandler.h -------------------------------------------------------------------------------- /Pods/Headers/Public/IQKeyboardManager/IQPreviousNextView.h: -------------------------------------------------------------------------------- 1 | ../../../IQKeyboardManager/IQKeyboardManager/IQToolbar/IQPreviousNextView.h -------------------------------------------------------------------------------- /Pods/Headers/Public/IQKeyboardManager/IQTextView.h: -------------------------------------------------------------------------------- 1 | ../../../IQKeyboardManager/IQKeyboardManager/IQTextView/IQTextView.h -------------------------------------------------------------------------------- /Pods/Headers/Public/IQKeyboardManager/IQTitleBarButtonItem.h: -------------------------------------------------------------------------------- 1 | ../../../IQKeyboardManager/IQKeyboardManager/IQToolbar/IQTitleBarButtonItem.h -------------------------------------------------------------------------------- /Pods/Headers/Public/IQKeyboardManager/IQToolbar.h: -------------------------------------------------------------------------------- 1 | ../../../IQKeyboardManager/IQKeyboardManager/IQToolbar/IQToolbar.h -------------------------------------------------------------------------------- /Pods/Headers/Public/IQKeyboardManager/IQUIScrollView+Additions.h: -------------------------------------------------------------------------------- 1 | ../../../IQKeyboardManager/IQKeyboardManager/Categories/IQUIScrollView+Additions.h -------------------------------------------------------------------------------- /Pods/Headers/Public/IQKeyboardManager/IQUITextFieldView+Additions.h: -------------------------------------------------------------------------------- 1 | ../../../IQKeyboardManager/IQKeyboardManager/Categories/IQUITextFieldView+Additions.h -------------------------------------------------------------------------------- /Pods/Headers/Public/IQKeyboardManager/IQUIView+Hierarchy.h: -------------------------------------------------------------------------------- 1 | ../../../IQKeyboardManager/IQKeyboardManager/Categories/IQUIView+Hierarchy.h -------------------------------------------------------------------------------- /Pods/Headers/Public/IQKeyboardManager/IQUIView+IQKeyboardToolbar.h: -------------------------------------------------------------------------------- 1 | ../../../IQKeyboardManager/IQKeyboardManager/IQToolbar/IQUIView+IQKeyboardToolbar.h -------------------------------------------------------------------------------- /Pods/Headers/Public/IQKeyboardManager/IQUIViewController+Additions.h: -------------------------------------------------------------------------------- 1 | ../../../IQKeyboardManager/IQKeyboardManager/Categories/IQUIViewController+Additions.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/MASCompositeConstraint.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASCompositeConstraint.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/MASConstraint+Private.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASConstraint+Private.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/MASConstraint.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASConstraint.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/MASConstraintMaker.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASConstraintMaker.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/MASLayoutConstraint.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASLayoutConstraint.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/MASUtilities.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASUtilities.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/MASViewAttribute.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASViewAttribute.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/MASViewConstraint.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/MASViewConstraint.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/Masonry.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/Masonry.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/NSArray+MASAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/NSArray+MASAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/NSArray+MASShorthandAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/NSArray+MASShorthandAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/NSLayoutConstraint+MASDebugAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/NSLayoutConstraint+MASDebugAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/View+MASAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/View+MASAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/View+MASShorthandAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/View+MASShorthandAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Masonry/ViewController+MASAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../Masonry/Masonry/ViewController+MASAdditions.h -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/IQKeyboardManager/Categories/IQNSArray+Sort.h: -------------------------------------------------------------------------------- 1 | // 2 | // IQNSArray+Sort.h 3 | // https://github.com/hackiftekhar/IQKeyboardManager 4 | // Copyright (c) 2013-16 Iftekhar Qurashi. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #import 25 | 26 | @class UIView; 27 | 28 | /** 29 | UIView.subviews sorting category. 30 | */ 31 | @interface NSArray (IQ_NSArray_Sort) 32 | 33 | ///-------------- 34 | /// @name Sorting 35 | ///-------------- 36 | 37 | /** 38 | Returns the array by sorting the UIView's by their tag property. 39 | */ 40 | @property (nonnull, nonatomic, readonly, copy) NSArray<__kindof UIView*> * sortedArrayByTag; 41 | 42 | /** 43 | Returns the array by sorting the UIView's by their tag property. 44 | */ 45 | @property (nonnull, nonatomic, readonly, copy) NSArray<__kindof UIView*> * sortedArrayByPosition; 46 | 47 | @end 48 | -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/IQKeyboardManager/Categories/IQNSArray+Sort.m: -------------------------------------------------------------------------------- 1 | // 2 | // IQNSArray+Sort.m 3 | // https://github.com/hackiftekhar/IQKeyboardManager 4 | // Copyright (c) 2013-16 Iftekhar Qurashi. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #import "IQNSArray+Sort.h" 25 | #import "IQUIView+Hierarchy.h" 26 | 27 | #import 28 | 29 | @implementation NSArray (IQ_NSArray_Sort) 30 | 31 | - (NSArray*)sortedArrayByTag 32 | { 33 | return [self sortedArrayUsingComparator:^NSComparisonResult(UIView *view1, UIView *view2) { 34 | 35 | if ([view1 respondsToSelector:@selector(tag)] && [view2 respondsToSelector:@selector(tag)]) 36 | { 37 | if ([view1 tag] < [view2 tag]) return NSOrderedAscending; 38 | 39 | else if ([view1 tag] > [view2 tag]) return NSOrderedDescending; 40 | 41 | else return NSOrderedSame; 42 | } 43 | else 44 | return NSOrderedSame; 45 | }]; 46 | } 47 | 48 | - (NSArray*)sortedArrayByPosition 49 | { 50 | return [self sortedArrayUsingComparator:^NSComparisonResult(UIView *view1, UIView *view2) { 51 | 52 | CGFloat x1 = CGRectGetMinX(view1.frame); 53 | CGFloat y1 = CGRectGetMinY(view1.frame); 54 | CGFloat x2 = CGRectGetMinX(view2.frame); 55 | CGFloat y2 = CGRectGetMinY(view2.frame); 56 | 57 | if (y1 < y2) return NSOrderedAscending; 58 | 59 | else if (y1 > y2) return NSOrderedDescending; 60 | 61 | //Else both y are same so checking for x positions 62 | else if (x1 < x2) return NSOrderedAscending; 63 | 64 | else if (x1 > x2) return NSOrderedDescending; 65 | 66 | else return NSOrderedSame; 67 | }]; 68 | } 69 | 70 | 71 | @end 72 | -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/IQKeyboardManager/Categories/IQUIScrollView+Additions.h: -------------------------------------------------------------------------------- 1 | // 2 | // IQUIScrollView+Additions.h 3 | // https://github.com/hackiftekhar/IQKeyboardManager 4 | // Copyright (c) 2013-16 Iftekhar Qurashi. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #import 25 | #import 26 | 27 | 28 | @interface UIScrollView (Additions) 29 | 30 | /** 31 | If YES, then scrollview will ignore scrolling (simply not scroll it) for adjusting textfield position. Default is NO. 32 | */ 33 | @property(nonatomic, assign) BOOL shouldIgnoreScrollingAdjustment; 34 | 35 | /** 36 | Restore scrollViewContentOffset when resigning from scrollView. Default is NO. 37 | */ 38 | @property(nonatomic, assign) BOOL shouldRestoreScrollViewContentOffset; 39 | 40 | 41 | @end 42 | 43 | @interface UITableView (PreviousNextIndexPath) 44 | 45 | -(nullable NSIndexPath*)previousIndexPathOfIndexPath:(nonnull NSIndexPath*)indexPath; 46 | //-(nullable NSIndexPath*)nextIndexPathOfIndexPath:(nonnull NSIndexPath*)indexPath; 47 | 48 | @end 49 | 50 | @interface UICollectionView (PreviousNextIndexPath) 51 | 52 | -(nullable NSIndexPath*)previousIndexPathOfIndexPath:(nonnull NSIndexPath*)indexPath; 53 | //-(nullable NSIndexPath*)nextIndexPathOfIndexPath:(nonnull NSIndexPath*)indexPath; 54 | 55 | @end 56 | -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/IQKeyboardManager/Categories/IQUIScrollView+Additions.m: -------------------------------------------------------------------------------- 1 | // 2 | // IQUIScrollView+Additions.m 3 | // https://github.com/hackiftekhar/IQKeyboardManager 4 | // Copyright (c) 2013-16 Iftekhar Qurashi. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #import "IQUIScrollView+Additions.h" 25 | #import 26 | 27 | @implementation UIScrollView (Additions) 28 | 29 | -(void)setShouldIgnoreScrollingAdjustment:(BOOL)shouldIgnoreScrollingAdjustment 30 | { 31 | objc_setAssociatedObject(self, @selector(shouldIgnoreScrollingAdjustment), @(shouldIgnoreScrollingAdjustment), OBJC_ASSOCIATION_RETAIN_NONATOMIC); 32 | } 33 | 34 | -(BOOL)shouldIgnoreScrollingAdjustment 35 | { 36 | NSNumber *shouldIgnoreScrollingAdjustment = objc_getAssociatedObject(self, @selector(shouldIgnoreScrollingAdjustment)); 37 | 38 | return [shouldIgnoreScrollingAdjustment boolValue]; 39 | } 40 | 41 | -(void)setShouldRestoreScrollViewContentOffset:(BOOL)shouldRestoreScrollViewContentOffset 42 | { 43 | objc_setAssociatedObject(self, @selector(shouldRestoreScrollViewContentOffset), @(shouldRestoreScrollViewContentOffset), OBJC_ASSOCIATION_RETAIN_NONATOMIC); 44 | } 45 | 46 | -(BOOL)shouldRestoreScrollViewContentOffset 47 | { 48 | NSNumber *shouldRestoreScrollViewContentOffset = objc_getAssociatedObject(self, @selector(shouldRestoreScrollViewContentOffset)); 49 | 50 | return [shouldRestoreScrollViewContentOffset boolValue]; 51 | } 52 | 53 | @end 54 | 55 | @implementation UITableView (PreviousNextIndexPath) 56 | 57 | -(nullable NSIndexPath*)previousIndexPathOfIndexPath:(nonnull NSIndexPath*)indexPath 58 | { 59 | NSInteger previousRow = indexPath.row - 1; 60 | NSInteger previousSection = indexPath.section; 61 | 62 | //Fixing indexPath 63 | if (previousRow < 0) 64 | { 65 | previousSection -= 1; 66 | 67 | if (previousSection >= 0) 68 | { 69 | previousRow = [self numberOfRowsInSection:previousSection]-1; 70 | } 71 | } 72 | 73 | if (previousRow >= 0 && previousSection >= 0) 74 | { 75 | return [NSIndexPath indexPathForRow:previousRow inSection:previousSection]; 76 | } 77 | 78 | return nil; 79 | } 80 | 81 | //-(nullable NSIndexPath*)nextIndexPathOfIndexPath:(nonnull NSIndexPath*)indexPath 82 | //{ 83 | // NSInteger nextRow = indexPath.row + 1; 84 | // NSInteger nextSection = indexPath.section; 85 | // 86 | // //Fixing indexPath 87 | // if (nextRow >= [self numberOfRowsInSection:nextSection]) 88 | // { 89 | // nextRow = 0; 90 | // nextSection += 1; 91 | // } 92 | // 93 | // if (self.numberOfSections > nextSection && [self numberOfRowsInSection:nextSection] > nextRow) 94 | // { 95 | // return [NSIndexPath indexPathForItem:nextRow inSection:nextSection]; 96 | // } 97 | // 98 | // return nil; 99 | //} 100 | // 101 | @end 102 | 103 | @implementation UICollectionView (PreviousNextIndexPath) 104 | 105 | -(nullable NSIndexPath*)previousIndexPathOfIndexPath:(nonnull NSIndexPath*)indexPath 106 | { 107 | NSInteger previousRow = indexPath.row - 1; 108 | NSInteger previousSection = indexPath.section; 109 | 110 | //Fixing indexPath 111 | if (previousRow < 0) 112 | { 113 | previousSection -= 1; 114 | 115 | if (previousSection >= 0) 116 | { 117 | previousRow = [self numberOfItemsInSection:previousSection]-1; 118 | } 119 | } 120 | 121 | if (previousRow >= 0 && previousSection >= 0) 122 | { 123 | return [NSIndexPath indexPathForItem:previousRow inSection:previousSection]; 124 | } 125 | 126 | return nil; 127 | } 128 | 129 | //-(nullable NSIndexPath*)nextIndexPathOfIndexPath:(nonnull NSIndexPath*)indexPath 130 | //{ 131 | // NSInteger nextRow = indexPath.row + 1; 132 | // NSInteger nextSection = indexPath.section; 133 | // 134 | // //Fixing indexPath 135 | // if (nextRow >= [self numberOfItemsInSection:nextSection]) 136 | // { 137 | // nextRow = 0; 138 | // nextSection += 1; 139 | // } 140 | // 141 | // if (self.numberOfSections > nextSection && [self numberOfItemsInSection:nextSection] > nextRow) 142 | // { 143 | // return [NSIndexPath indexPathForItem:nextRow inSection:nextSection]; 144 | // } 145 | // 146 | // return nil; 147 | //} 148 | 149 | @end 150 | -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/IQKeyboardManager/Categories/IQUITextFieldView+Additions.h: -------------------------------------------------------------------------------- 1 | // 2 | // IQUITextFieldView+Additions.h 3 | // https://github.com/hackiftekhar/IQKeyboardManager 4 | // Copyright (c) 2013-16 Iftekhar Qurashi. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #import 25 | #import "IQKeyboardManagerConstants.h" 26 | 27 | /** 28 | UIView category for managing UITextField/UITextView 29 | */ 30 | 31 | @interface UIView (Additions) 32 | 33 | /** 34 | To set customized distance from keyboard for textField/textView. Can't be less than zero 35 | */ 36 | @property(nonatomic, assign) CGFloat keyboardDistanceFromTextField; 37 | 38 | /** 39 | If shouldIgnoreSwitchingByNextPrevious is YES then library will ignore this textField/textView while moving to other textField/textView using keyboard toolbar next previous buttons. Default is NO 40 | */ 41 | @property(nonatomic, assign) BOOL ignoreSwitchingByNextPrevious; 42 | 43 | ///** 44 | // Override Enable/disable managing distance between keyboard and textField behaviour for this particular textField. 45 | // */ 46 | @property(nonatomic, assign) IQEnableMode enableMode; 47 | 48 | /** 49 | Override resigns Keyboard on touching outside of UITextField/View behaviour for this particular textField. 50 | */ 51 | @property(nonatomic, assign) IQEnableMode shouldResignOnTouchOutsideMode; 52 | 53 | @end 54 | 55 | ///------------------------------------------- 56 | /// @name Custom KeyboardDistanceFromTextField 57 | ///------------------------------------------- 58 | 59 | /** 60 | Uses default keyboard distance for textField. 61 | */ 62 | extern CGFloat const kIQUseDefaultKeyboardDistance; 63 | -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/IQKeyboardManager/Categories/IQUITextFieldView+Additions.m: -------------------------------------------------------------------------------- 1 | // 2 | // IQUITextFieldView+Additions.m 3 | // https://github.com/hackiftekhar/IQKeyboardManager 4 | // Copyright (c) 2013-16 Iftekhar Qurashi. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #import "IQUITextFieldView+Additions.h" 25 | #import 26 | 27 | @implementation UIView (Additions) 28 | 29 | -(void)setKeyboardDistanceFromTextField:(CGFloat)keyboardDistanceFromTextField 30 | { 31 | //Can't be less than zero. Minimum is zero. 32 | keyboardDistanceFromTextField = MAX(keyboardDistanceFromTextField, 0); 33 | 34 | objc_setAssociatedObject(self, @selector(keyboardDistanceFromTextField), @(keyboardDistanceFromTextField), OBJC_ASSOCIATION_RETAIN_NONATOMIC); 35 | } 36 | 37 | -(CGFloat)keyboardDistanceFromTextField 38 | { 39 | NSNumber *keyboardDistanceFromTextField = objc_getAssociatedObject(self, @selector(keyboardDistanceFromTextField)); 40 | 41 | return (keyboardDistanceFromTextField != nil)?[keyboardDistanceFromTextField floatValue]:kIQUseDefaultKeyboardDistance; 42 | } 43 | 44 | -(void)setIgnoreSwitchingByNextPrevious:(BOOL)ignoreSwitchingByNextPrevious 45 | { 46 | objc_setAssociatedObject(self, @selector(ignoreSwitchingByNextPrevious), @(ignoreSwitchingByNextPrevious), OBJC_ASSOCIATION_RETAIN_NONATOMIC); 47 | } 48 | 49 | -(BOOL)ignoreSwitchingByNextPrevious 50 | { 51 | NSNumber *ignoreSwitchingByNextPrevious = objc_getAssociatedObject(self, @selector(ignoreSwitchingByNextPrevious)); 52 | 53 | return [ignoreSwitchingByNextPrevious boolValue]; 54 | } 55 | 56 | -(void)setEnableMode:(IQEnableMode)enableMode 57 | { 58 | objc_setAssociatedObject(self, @selector(enableMode), @(enableMode), OBJC_ASSOCIATION_RETAIN_NONATOMIC); 59 | } 60 | 61 | -(IQEnableMode)enableMode 62 | { 63 | NSNumber *enableMode = objc_getAssociatedObject(self, @selector(enableMode)); 64 | 65 | return [enableMode unsignedIntegerValue]; 66 | } 67 | 68 | -(void)setShouldResignOnTouchOutsideMode:(IQEnableMode)shouldResignOnTouchOutsideMode 69 | { 70 | objc_setAssociatedObject(self, @selector(shouldResignOnTouchOutsideMode), @(shouldResignOnTouchOutsideMode), OBJC_ASSOCIATION_RETAIN_NONATOMIC); 71 | } 72 | 73 | -(IQEnableMode)shouldResignOnTouchOutsideMode 74 | { 75 | NSNumber *shouldResignOnTouchOutsideMode = objc_getAssociatedObject(self, @selector(shouldResignOnTouchOutsideMode)); 76 | 77 | return [shouldResignOnTouchOutsideMode unsignedIntegerValue]; 78 | } 79 | 80 | @end 81 | 82 | ///------------------------------------ 83 | /// @name keyboardDistanceFromTextField 84 | ///------------------------------------ 85 | 86 | /** 87 | Uses default keyboard distance for textField. 88 | */ 89 | CGFloat const kIQUseDefaultKeyboardDistance = CGFLOAT_MAX; 90 | 91 | -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/IQKeyboardManager/Categories/IQUIViewController+Additions.h: -------------------------------------------------------------------------------- 1 | // 2 | // IQUIViewController+Additions.h 3 | // https://github.com/hackiftekhar/IQKeyboardManager 4 | // Copyright (c) 2013-16 Iftekhar Qurashi. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #import 25 | 26 | @class NSLayoutConstraint; 27 | 28 | @interface UIViewController (Additions) 29 | 30 | /** 31 | Top/Bottom Layout constraint which help library to manage keyboardTextField distance 32 | 33 | @deprecated Due to change in core-logic of handling distance between textField and keyboard distance, this layout contraint tweak is no longer needed and things will just work out of the box regardless of constraint pinned with safeArea/layoutGuide/superview. 34 | */ 35 | @property(nullable, nonatomic, strong) IBOutlet NSLayoutConstraint *IQLayoutGuideConstraint __attribute__((deprecated("Due to change in core-logic of handling distance between textField and keyboard distance, this layout contraint tweak is no longer needed and things will just work out of the box regardless of constraint pinned with safeArea/layoutGuide/superview."))); 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/IQKeyboardManager/Categories/IQUIViewController+Additions.m: -------------------------------------------------------------------------------- 1 | // 2 | // IQUIViewController+Additions.m 3 | // https://github.com/hackiftekhar/IQKeyboardManager 4 | // Copyright (c) 2013-16 Iftekhar Qurashi. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #import "IQUIViewController+Additions.h" 25 | #import 26 | #import 27 | 28 | @implementation UIViewController (Additions) 29 | 30 | -(void)setIQLayoutGuideConstraint:(NSLayoutConstraint *)IQLayoutGuideConstraint 31 | { 32 | objc_setAssociatedObject(self, @selector(IQLayoutGuideConstraint), IQLayoutGuideConstraint, OBJC_ASSOCIATION_RETAIN_NONATOMIC); 33 | } 34 | 35 | -(NSLayoutConstraint *)IQLayoutGuideConstraint 36 | { 37 | return objc_getAssociatedObject(self, @selector(IQLayoutGuideConstraint)); 38 | } 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/IQKeyboardManager/Constants/IQKeyboardManagerConstantsInternal.h: -------------------------------------------------------------------------------- 1 | // 2 | // IQKeyboardManagerConstantsInternal.h 3 | // https://github.com/hackiftekhar/IQKeyboardManager 4 | // Copyright (c) 2013-16 Iftekhar Qurashi. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #ifndef IQKeyboardManagerConstantsInternal_h 25 | #define IQKeyboardManagerConstantsInternal_h 26 | 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/IQKeyboardManager/IQKeyboardReturnKeyHandler.h: -------------------------------------------------------------------------------- 1 | // 2 | // IQKeyboardReturnKeyHandler.h 3 | // https://github.com/hackiftekhar/IQKeyboardManager 4 | // Copyright (c) 2013-16 Iftekhar Qurashi. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #import "IQKeyboardManagerConstants.h" 25 | 26 | #import 27 | #import 28 | 29 | #import 30 | 31 | @class UITextField, UIView, UIViewController; 32 | @protocol UITextFieldDelegate, UITextViewDelegate; 33 | 34 | /** 35 | Manages the return key to work like next/done in a view hierarchy. 36 | */ 37 | @interface IQKeyboardReturnKeyHandler : NSObject 38 | 39 | ///---------------------- 40 | /// @name Initializations 41 | ///---------------------- 42 | 43 | /** 44 | Add all the textFields available in UIViewController's view. 45 | */ 46 | -(nonnull instancetype)initWithViewController:(nullable UIViewController*)controller NS_DESIGNATED_INITIALIZER; 47 | 48 | /** 49 | Unavailable. Please use initWithViewController: or init method 50 | */ 51 | -(nonnull instancetype)initWithCoder:(nullable NSCoder *)aDecoder NS_UNAVAILABLE; 52 | 53 | ///--------------- 54 | /// @name Settings 55 | ///--------------- 56 | 57 | /** 58 | Delegate of textField/textView. 59 | */ 60 | @property(nullable, nonatomic, weak) id delegate; 61 | 62 | /** 63 | Set the last textfield return key type. Default is UIReturnKeyDefault. 64 | */ 65 | @property(nonatomic, assign) UIReturnKeyType lastTextFieldReturnKeyType; 66 | 67 | ///---------------------------------------------- 68 | /// @name Registering/Unregistering textFieldView 69 | ///---------------------------------------------- 70 | 71 | /** 72 | Should pass UITextField/UITextView instance. Assign textFieldView delegate to self, change it's returnKeyType. 73 | 74 | @param textFieldView UITextField/UITextView object to register. 75 | */ 76 | -(void)addTextFieldView:(nonnull UIView*)textFieldView; 77 | 78 | /** 79 | Should pass UITextField/UITextView instance. Restore it's textFieldView delegate and it's returnKeyType. 80 | 81 | @param textFieldView UITextField/UITextView object to unregister. 82 | */ 83 | -(void)removeTextFieldView:(nonnull UIView*)textFieldView; 84 | 85 | /** 86 | Add all the UITextField/UITextView responderView's. 87 | 88 | @param view object to register all it's responder subviews. 89 | */ 90 | -(void)addResponderFromView:(nonnull UIView*)view; 91 | 92 | /** 93 | Remove all the UITextField/UITextView responderView's. 94 | 95 | @param view object to unregister all it's responder subviews. 96 | */ 97 | -(void)removeResponderFromView:(nonnull UIView*)view; 98 | 99 | @end 100 | -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/IQKeyboardManager/IQTextView/IQTextView.h: -------------------------------------------------------------------------------- 1 | // 2 | // IQTextView.h 3 | // https://github.com/hackiftekhar/IQKeyboardManager 4 | // Copyright (c) 2013-16 Iftekhar Qurashi. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #import "IQKeyboardManagerConstants.h" 25 | 26 | #import 27 | 28 | /** 29 | UITextView with placeholder support 30 | */ 31 | @interface IQTextView : UITextView 32 | 33 | /** 34 | Set textView's placeholder text. Default is nil. 35 | */ 36 | @property(nullable, nonatomic,copy) IBInspectable NSString *placeholder; 37 | 38 | /** 39 | Set textView's placeholder attributed text. Default is nil. 40 | */ 41 | @property(nullable, nonatomic,copy) IBInspectable NSAttributedString *attributedPlaceholder; 42 | 43 | /** 44 | To set textView's placeholder text color. Default is nil. 45 | */ 46 | @property(nullable, nonatomic,copy) IBInspectable UIColor *placeholderTextColor; 47 | 48 | @end 49 | 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/IQKeyboardManager/IQToolbar/IQBarButtonItem.h: -------------------------------------------------------------------------------- 1 | // 2 | // IQBarButtonItem.h 3 | // https://github.com/hackiftekhar/IQKeyboardManager 4 | // Copyright (c) 2013-16 Iftekhar Qurashi. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #import 25 | 26 | @class NSInvocation; 27 | 28 | /** 29 | IQBarButtonItem used for IQToolbar. 30 | */ 31 | @interface IQBarButtonItem : UIBarButtonItem 32 | 33 | /** 34 | Boolean to know if it's a system item or custom item 35 | */ 36 | @property (nonatomic, readonly) BOOL isSystemItem; 37 | 38 | /** 39 | Additional target & action to do get callback action. Note that setting custom target & selector doesn't affect native functionality, this is just an additional target to get a callback. 40 | 41 | @param target Target object. 42 | @param action Target Selector. 43 | */ 44 | -(void)setTarget:(nullable id)target action:(nullable SEL)action; 45 | 46 | /** 47 | Customized Invocation to be called when button is pressed. invocation is internally created using setTarget:action: method. 48 | */ 49 | @property (nullable, strong, nonatomic) NSInvocation *invocation; 50 | 51 | @end 52 | -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/IQKeyboardManager/IQToolbar/IQBarButtonItem.m: -------------------------------------------------------------------------------- 1 | // 2 | // IQBarButtonItem.m 3 | // https://github.com/hackiftekhar/IQKeyboardManager 4 | // Copyright (c) 2013-16 Iftekhar Qurashi. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #import "IQBarButtonItem.h" 25 | #import "IQKeyboardManagerConstantsInternal.h" 26 | #import 27 | 28 | @implementation IQBarButtonItem 29 | 30 | +(void)initialize 31 | { 32 | [super initialize]; 33 | 34 | IQBarButtonItem *appearanceProxy = [self appearance]; 35 | 36 | NSArray *states = @[@(UIControlStateNormal),@(UIControlStateHighlighted),@(UIControlStateDisabled),@(UIControlStateSelected),@(UIControlStateApplication),@(UIControlStateReserved)]; 37 | 38 | for (NSNumber *state in states) 39 | { 40 | UIControlState controlState = [state unsignedIntegerValue]; 41 | 42 | [appearanceProxy setBackgroundImage:nil forState:controlState barMetrics:UIBarMetricsDefault]; 43 | [appearanceProxy setBackgroundImage:nil forState:controlState style:UIBarButtonItemStyleDone barMetrics:UIBarMetricsDefault]; 44 | [appearanceProxy setBackgroundImage:nil forState:controlState style:UIBarButtonItemStylePlain barMetrics:UIBarMetricsDefault]; 45 | [appearanceProxy setBackButtonBackgroundImage:nil forState:controlState barMetrics:UIBarMetricsDefault]; 46 | } 47 | 48 | [appearanceProxy setTitlePositionAdjustment:UIOffsetZero forBarMetrics:UIBarMetricsDefault]; 49 | [appearanceProxy setBackgroundVerticalPositionAdjustment:0 forBarMetrics:UIBarMetricsDefault]; 50 | [appearanceProxy setBackButtonBackgroundVerticalPositionAdjustment:0 forBarMetrics:UIBarMetricsDefault]; 51 | } 52 | 53 | -(void)setTintColor:(UIColor *)tintColor 54 | { 55 | [super setTintColor:tintColor]; 56 | 57 | //titleTextAttributes tweak is to overcome an issue comes with iOS11 where appearanceProxy set for NSForegroundColorAttributeName and bar button texts start appearing in appearance proxy color 58 | NSMutableDictionary *textAttributes = [[self titleTextAttributesForState:UIControlStateNormal] mutableCopy]?:[NSMutableDictionary new]; 59 | 60 | textAttributes[NSForegroundColorAttributeName] = tintColor; 61 | 62 | [self setTitleTextAttributes:textAttributes forState:UIControlStateNormal]; 63 | } 64 | 65 | - (instancetype)initWithBarButtonSystemItem:(UIBarButtonSystemItem)systemItem target:(nullable id)target action:(nullable SEL)action 66 | { 67 | self = [super initWithBarButtonSystemItem:systemItem target:target action:action]; 68 | 69 | if (self) 70 | { 71 | _isSystemItem = YES; 72 | } 73 | 74 | return self; 75 | } 76 | 77 | 78 | -(void)setTarget:(nullable id)target action:(nullable SEL)action 79 | { 80 | NSInvocation *invocation = nil; 81 | 82 | if (target && action) 83 | { 84 | invocation = [NSInvocation invocationWithMethodSignature:[target methodSignatureForSelector:action]]; 85 | invocation.target = target; 86 | invocation.selector = action; 87 | } 88 | 89 | self.invocation = invocation; 90 | } 91 | 92 | -(void)dealloc 93 | { 94 | self.target = nil; 95 | self.invocation = nil; 96 | } 97 | 98 | @end 99 | -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/IQKeyboardManager/IQToolbar/IQPreviousNextView.h: -------------------------------------------------------------------------------- 1 | // 2 | // IQPreviousNextView.h 3 | // https://github.com/hackiftekhar/IQKeyboardManager 4 | // Copyright (c) 2013-16 Iftekhar Qurashi. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #import 25 | /** 26 | If you need to enable previous/next toolbar button with some complex hierarchy where your textFields are not in same view, then make the top view as IQPreviousNextView. 27 | */ 28 | @interface IQPreviousNextView : UIView 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/IQKeyboardManager/IQToolbar/IQPreviousNextView.m: -------------------------------------------------------------------------------- 1 | // 2 | // IQPreviousNextView.m 3 | // https://github.com/hackiftekhar/IQKeyboardManager 4 | // Copyright (c) 2013-16 Iftekhar Qurashi. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #import "IQPreviousNextView.h" 25 | 26 | @implementation IQPreviousNextView 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/IQKeyboardManager/IQToolbar/IQTitleBarButtonItem.h: -------------------------------------------------------------------------------- 1 | // 2 | // IQTitleBarButtonItem.h 3 | // https://github.com/hackiftekhar/IQKeyboardManager 4 | // Copyright (c) 2013-16 Iftekhar Qurashi. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #import "IQKeyboardManagerConstants.h" 25 | #import "IQBarButtonItem.h" 26 | 27 | #import 28 | 29 | /** 30 | BarButtonItem with title text. 31 | */ 32 | @interface IQTitleBarButtonItem : IQBarButtonItem 33 | 34 | /** 35 | Font to be used in bar button. Default is (system font 12.0 bold). 36 | */ 37 | @property(nullable, nonatomic, strong) UIFont *titleFont; 38 | 39 | /** 40 | titleColor to be used for displaying button text when displaying title (disabled state). 41 | */ 42 | @property(nullable, nonatomic, strong) UIColor *titleColor; 43 | 44 | /** 45 | selectableTitleColor to be used for displaying button text when button is enabled. 46 | */ 47 | @property(nullable, nonatomic, strong) UIColor *selectableTitleColor; 48 | 49 | /** 50 | Initialize with frame and title. 51 | 52 | @param title Title of barButtonItem. 53 | */ 54 | -(nonnull instancetype)initWithTitle:(nullable NSString *)title NS_DESIGNATED_INITIALIZER; 55 | 56 | /** 57 | Unavailable. Please use initWithFrame:title: method 58 | */ 59 | -(nonnull instancetype)init NS_UNAVAILABLE; 60 | 61 | /** 62 | Unavailable. Please use initWithFrame:title: method 63 | */ 64 | -(nonnull instancetype)initWithCoder:(nullable NSCoder *)aDecoder NS_UNAVAILABLE; 65 | 66 | /** 67 | Unavailable. Please use initWithFrame:title: method 68 | */ 69 | + (nonnull instancetype)new NS_UNAVAILABLE; 70 | 71 | @end 72 | -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/IQKeyboardManager/IQToolbar/IQToolbar.h: -------------------------------------------------------------------------------- 1 | // 2 | // IQToolbar.h 3 | // https://github.com/hackiftekhar/IQKeyboardManager 4 | // Copyright (c) 2013-16 Iftekhar Qurashi. 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #import "IQTitleBarButtonItem.h" 25 | 26 | #import 27 | #import 28 | 29 | /** 30 | IQToolbar for IQKeyboardManager. 31 | */ 32 | @interface IQToolbar : UIToolbar 33 | 34 | /** 35 | Previous bar button of toolbar. 36 | */ 37 | @property(nonnull, nonatomic, strong) IQBarButtonItem *previousBarButton; 38 | 39 | /** 40 | Next bar button of toolbar. 41 | */ 42 | @property(nonnull, nonatomic, strong) IQBarButtonItem *nextBarButton; 43 | 44 | /** 45 | Title bar button of toolbar. 46 | */ 47 | @property(nonnull, nonatomic, strong, readonly) IQTitleBarButtonItem *titleBarButton; 48 | 49 | /** 50 | Done bar button of toolbar. 51 | */ 52 | @property(nonnull, nonatomic, strong) IQBarButtonItem *doneBarButton; 53 | 54 | /** 55 | Fixed space bar button of toolbar. 56 | */ 57 | @property(nonnull, nonatomic, strong) IQBarButtonItem *fixedSpaceBarButton; 58 | 59 | @end 60 | 61 | -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.xcassets/IQButtonBarArrowDown.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "IQButtonBarArrowDown@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "IQButtonBarArrowDown@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.xcassets/IQButtonBarArrowDown.imageset/IQButtonBarArrowDown@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shabake/GHDynamicInputView/1ae1f5533187d6c9f4758e2938ef325425c219e0/Pods/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.xcassets/IQButtonBarArrowDown.imageset/IQButtonBarArrowDown@2x.png -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.xcassets/IQButtonBarArrowDown.imageset/IQButtonBarArrowDown@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shabake/GHDynamicInputView/1ae1f5533187d6c9f4758e2938ef325425c219e0/Pods/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.xcassets/IQButtonBarArrowDown.imageset/IQButtonBarArrowDown@3x.png -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.xcassets/IQButtonBarArrowLeft.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "IQButtonBarArrowLeft@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "IQButtonBarArrowLeft@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.xcassets/IQButtonBarArrowLeft.imageset/IQButtonBarArrowLeft@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shabake/GHDynamicInputView/1ae1f5533187d6c9f4758e2938ef325425c219e0/Pods/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.xcassets/IQButtonBarArrowLeft.imageset/IQButtonBarArrowLeft@2x.png -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.xcassets/IQButtonBarArrowLeft.imageset/IQButtonBarArrowLeft@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shabake/GHDynamicInputView/1ae1f5533187d6c9f4758e2938ef325425c219e0/Pods/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.xcassets/IQButtonBarArrowLeft.imageset/IQButtonBarArrowLeft@3x.png -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.xcassets/IQButtonBarArrowRight.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "IQButtonBarArrowRight@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "IQButtonBarArrowRight@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.xcassets/IQButtonBarArrowRight.imageset/IQButtonBarArrowRight@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shabake/GHDynamicInputView/1ae1f5533187d6c9f4758e2938ef325425c219e0/Pods/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.xcassets/IQButtonBarArrowRight.imageset/IQButtonBarArrowRight@2x.png -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.xcassets/IQButtonBarArrowRight.imageset/IQButtonBarArrowRight@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shabake/GHDynamicInputView/1ae1f5533187d6c9f4758e2938ef325425c219e0/Pods/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.xcassets/IQButtonBarArrowRight.imageset/IQButtonBarArrowRight@3x.png -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.xcassets/IQButtonBarArrowUp.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "IQButtonBarArrowUp@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "IQButtonBarArrowUp@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.xcassets/IQButtonBarArrowUp.imageset/IQButtonBarArrowUp@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shabake/GHDynamicInputView/1ae1f5533187d6c9f4758e2938ef325425c219e0/Pods/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.xcassets/IQButtonBarArrowUp.imageset/IQButtonBarArrowUp@2x.png -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.xcassets/IQButtonBarArrowUp.imageset/IQButtonBarArrowUp@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/shabake/GHDynamicInputView/1ae1f5533187d6c9f4758e2938ef325425c219e0/Pods/IQKeyboardManager/IQKeyboardManager/Resources/IQKeyboardManager.xcassets/IQButtonBarArrowUp.imageset/IQButtonBarArrowUp@3x.png -------------------------------------------------------------------------------- /Pods/IQKeyboardManager/LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2013-2017 Iftekhar Qurashi 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - IQKeyboardManager (6.5.4) 3 | - Masonry (1.0.0) 4 | 5 | DEPENDENCIES: 6 | - IQKeyboardManager (= 6.5.4) 7 | - Masonry (= 1.0.0) 8 | 9 | SPEC REPOS: 10 | trunk: 11 | - IQKeyboardManager 12 | - Masonry 13 | 14 | SPEC CHECKSUMS: 15 | IQKeyboardManager: 72b359cd7e777e3a984cedbe05f8da45320cbb63 16 | Masonry: b529bb169217897b6354d4b56b1fada6d475b13d 17 | 18 | PODFILE CHECKSUM: 375f2ce0155051f93fd1e85b9d4b50a2ea4b964c 19 | 20 | COCOAPODS: 1.8.4 21 | -------------------------------------------------------------------------------- /Pods/Masonry/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011-2012 Masonry Team - https://github.com/Masonry 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/MASCompositeConstraint.h: -------------------------------------------------------------------------------- 1 | // 2 | // MASCompositeConstraint.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 21/07/13. 6 | // Copyright (c) 2013 cloudling. All rights reserved. 7 | // 8 | 9 | #import "MASConstraint.h" 10 | #import "MASUtilities.h" 11 | 12 | /** 13 | * A group of MASConstraint objects 14 | */ 15 | @interface MASCompositeConstraint : MASConstraint 16 | 17 | /** 18 | * Creates a composite with a predefined array of children 19 | * 20 | * @param children child MASConstraints 21 | * 22 | * @return a composite constraint 23 | */ 24 | - (id)initWithChildren:(NSArray *)children; 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/MASConstraint+Private.h: -------------------------------------------------------------------------------- 1 | // 2 | // MASConstraint+Private.h 3 | // Masonry 4 | // 5 | // Created by Nick Tymchenko on 29/04/14. 6 | // Copyright (c) 2014 cloudling. All rights reserved. 7 | // 8 | 9 | #import "MASConstraint.h" 10 | 11 | @protocol MASConstraintDelegate; 12 | 13 | 14 | @interface MASConstraint () 15 | 16 | /** 17 | * Whether or not to check for an existing constraint instead of adding constraint 18 | */ 19 | @property (nonatomic, assign) BOOL updateExisting; 20 | 21 | /** 22 | * Usually MASConstraintMaker but could be a parent MASConstraint 23 | */ 24 | @property (nonatomic, weak) id delegate; 25 | 26 | /** 27 | * Based on a provided value type, is equal to calling: 28 | * NSNumber - setOffset: 29 | * NSValue with CGPoint - setPointOffset: 30 | * NSValue with CGSize - setSizeOffset: 31 | * NSValue with MASEdgeInsets - setInsets: 32 | */ 33 | - (void)setLayoutConstantWithValue:(NSValue *)value; 34 | 35 | @end 36 | 37 | 38 | @interface MASConstraint (Abstract) 39 | 40 | /** 41 | * Sets the constraint relation to given NSLayoutRelation 42 | * returns a block which accepts one of the following: 43 | * MASViewAttribute, UIView, NSValue, NSArray 44 | * see readme for more details. 45 | */ 46 | - (MASConstraint * (^)(id, NSLayoutRelation))equalToWithRelation; 47 | 48 | /** 49 | * Override to set a custom chaining behaviour 50 | */ 51 | - (MASConstraint *)addConstraintWithLayoutAttribute:(NSLayoutAttribute)layoutAttribute; 52 | 53 | @end 54 | 55 | 56 | @protocol MASConstraintDelegate 57 | 58 | /** 59 | * Notifies the delegate when the constraint needs to be replaced with another constraint. For example 60 | * A MASViewConstraint may turn into a MASCompositeConstraint when an array is passed to one of the equality blocks 61 | */ 62 | - (void)constraint:(MASConstraint *)constraint shouldBeReplacedWithConstraint:(MASConstraint *)replacementConstraint; 63 | 64 | - (MASConstraint *)constraint:(MASConstraint *)constraint addConstraintWithLayoutAttribute:(NSLayoutAttribute)layoutAttribute; 65 | 66 | @end 67 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/MASLayoutConstraint.h: -------------------------------------------------------------------------------- 1 | // 2 | // MASLayoutConstraint.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 3/08/13. 6 | // Copyright (c) 2013 Jonas Budelmann. All rights reserved. 7 | // 8 | 9 | #import "MASUtilities.h" 10 | 11 | /** 12 | * When you are debugging or printing the constraints attached to a view this subclass 13 | * makes it easier to identify which constraints have been created via Masonry 14 | */ 15 | @interface MASLayoutConstraint : NSLayoutConstraint 16 | 17 | /** 18 | * a key to associate with this constraint 19 | */ 20 | @property (nonatomic, strong) id mas_key; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/MASLayoutConstraint.m: -------------------------------------------------------------------------------- 1 | // 2 | // MASLayoutConstraint.m 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 3/08/13. 6 | // Copyright (c) 2013 Jonas Budelmann. All rights reserved. 7 | // 8 | 9 | #import "MASLayoutConstraint.h" 10 | 11 | @implementation MASLayoutConstraint 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/MASViewAttribute.h: -------------------------------------------------------------------------------- 1 | // 2 | // MASAttribute.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 21/07/13. 6 | // Copyright (c) 2013 cloudling. All rights reserved. 7 | // 8 | 9 | #import "MASUtilities.h" 10 | 11 | /** 12 | * An immutable tuple which stores the view and the related NSLayoutAttribute. 13 | * Describes part of either the left or right hand side of a constraint equation 14 | */ 15 | @interface MASViewAttribute : NSObject 16 | 17 | /** 18 | * The view which the reciever relates to. Can be nil if item is not a view. 19 | */ 20 | @property (nonatomic, weak, readonly) MAS_VIEW *view; 21 | 22 | /** 23 | * The item which the reciever relates to. 24 | */ 25 | @property (nonatomic, weak, readonly) id item; 26 | 27 | /** 28 | * The attribute which the reciever relates to 29 | */ 30 | @property (nonatomic, assign, readonly) NSLayoutAttribute layoutAttribute; 31 | 32 | /** 33 | * Convenience initializer. 34 | */ 35 | - (id)initWithView:(MAS_VIEW *)view layoutAttribute:(NSLayoutAttribute)layoutAttribute; 36 | 37 | /** 38 | * The designated initializer. 39 | */ 40 | - (id)initWithView:(MAS_VIEW *)view item:(id)item layoutAttribute:(NSLayoutAttribute)layoutAttribute; 41 | 42 | /** 43 | * Determine whether the layoutAttribute is a size attribute 44 | * 45 | * @return YES if layoutAttribute is equal to NSLayoutAttributeWidth or NSLayoutAttributeHeight 46 | */ 47 | - (BOOL)isSizeAttribute; 48 | 49 | @end 50 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/MASViewAttribute.m: -------------------------------------------------------------------------------- 1 | // 2 | // MASAttribute.m 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 21/07/13. 6 | // Copyright (c) 2013 cloudling. All rights reserved. 7 | // 8 | 9 | #import "MASViewAttribute.h" 10 | 11 | @implementation MASViewAttribute 12 | 13 | - (id)initWithView:(MAS_VIEW *)view layoutAttribute:(NSLayoutAttribute)layoutAttribute { 14 | self = [self initWithView:view item:view layoutAttribute:layoutAttribute]; 15 | return self; 16 | } 17 | 18 | - (id)initWithView:(MAS_VIEW *)view item:(id)item layoutAttribute:(NSLayoutAttribute)layoutAttribute { 19 | self = [super init]; 20 | if (!self) return nil; 21 | 22 | _view = view; 23 | _item = item; 24 | _layoutAttribute = layoutAttribute; 25 | 26 | return self; 27 | } 28 | 29 | - (BOOL)isSizeAttribute { 30 | return self.layoutAttribute == NSLayoutAttributeWidth 31 | || self.layoutAttribute == NSLayoutAttributeHeight; 32 | } 33 | 34 | - (BOOL)isEqual:(MASViewAttribute *)viewAttribute { 35 | if ([viewAttribute isKindOfClass:self.class]) { 36 | return self.view == viewAttribute.view 37 | && self.layoutAttribute == viewAttribute.layoutAttribute; 38 | } 39 | return [super isEqual:viewAttribute]; 40 | } 41 | 42 | - (NSUInteger)hash { 43 | return MAS_NSUINTROTATE([self.view hash], MAS_NSUINT_BIT / 2) ^ self.layoutAttribute; 44 | } 45 | 46 | @end 47 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/MASViewConstraint.h: -------------------------------------------------------------------------------- 1 | // 2 | // MASConstraint.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 20/07/13. 6 | // Copyright (c) 2013 cloudling. All rights reserved. 7 | // 8 | 9 | #import "MASViewAttribute.h" 10 | #import "MASConstraint.h" 11 | #import "MASLayoutConstraint.h" 12 | #import "MASUtilities.h" 13 | 14 | /** 15 | * A single constraint. 16 | * Contains the attributes neccessary for creating a NSLayoutConstraint and adding it to the appropriate view 17 | */ 18 | @interface MASViewConstraint : MASConstraint 19 | 20 | /** 21 | * First item/view and first attribute of the NSLayoutConstraint 22 | */ 23 | @property (nonatomic, strong, readonly) MASViewAttribute *firstViewAttribute; 24 | 25 | /** 26 | * Second item/view and second attribute of the NSLayoutConstraint 27 | */ 28 | @property (nonatomic, strong, readonly) MASViewAttribute *secondViewAttribute; 29 | 30 | /** 31 | * initialises the MASViewConstraint with the first part of the equation 32 | * 33 | * @param firstViewAttribute view.mas_left, view.mas_width etc. 34 | * 35 | * @return a new view constraint 36 | */ 37 | - (id)initWithFirstViewAttribute:(MASViewAttribute *)firstViewAttribute; 38 | 39 | /** 40 | * Returns all MASViewConstraints installed with this view as a first item. 41 | * 42 | * @param view A view to retrieve constraints for. 43 | * 44 | * @return An array of MASViewConstraints. 45 | */ 46 | + (NSArray *)installedConstraintsForView:(MAS_VIEW *)view; 47 | 48 | @end 49 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/Masonry.h: -------------------------------------------------------------------------------- 1 | // 2 | // Masonry.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 20/07/13. 6 | // Copyright (c) 2013 cloudling. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for Masonry. 12 | FOUNDATION_EXPORT double MasonryVersionNumber; 13 | 14 | //! Project version string for Masonry. 15 | FOUNDATION_EXPORT const unsigned char MasonryVersionString[]; 16 | 17 | #import "MASUtilities.h" 18 | #import "View+MASAdditions.h" 19 | #import "View+MASShorthandAdditions.h" 20 | #import "ViewController+MASAdditions.h" 21 | #import "NSArray+MASAdditions.h" 22 | #import "NSArray+MASShorthandAdditions.h" 23 | #import "MASConstraint.h" 24 | #import "MASCompositeConstraint.h" 25 | #import "MASViewAttribute.h" 26 | #import "MASViewConstraint.h" 27 | #import "MASConstraintMaker.h" 28 | #import "MASLayoutConstraint.h" 29 | #import "NSLayoutConstraint+MASDebugAdditions.h" 30 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/NSArray+MASAdditions.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSArray+MASAdditions.h 3 | // 4 | // 5 | // Created by Daniel Hammond on 11/26/13. 6 | // 7 | // 8 | 9 | #import "MASUtilities.h" 10 | #import "MASConstraintMaker.h" 11 | #import "MASViewAttribute.h" 12 | 13 | typedef NS_ENUM(NSUInteger, MASAxisType) { 14 | MASAxisTypeHorizontal, 15 | MASAxisTypeVertical 16 | }; 17 | 18 | @interface NSArray (MASAdditions) 19 | 20 | /** 21 | * Creates a MASConstraintMaker with each view in the callee. 22 | * Any constraints defined are added to the view or the appropriate superview once the block has finished executing on each view 23 | * 24 | * @param block scope within which you can build up the constraints which you wish to apply to each view. 25 | * 26 | * @return Array of created MASConstraints 27 | */ 28 | - (NSArray *)mas_makeConstraints:(void (^)(MASConstraintMaker *make))block; 29 | 30 | /** 31 | * Creates a MASConstraintMaker with each view in the callee. 32 | * Any constraints defined are added to each view or the appropriate superview once the block has finished executing on each view. 33 | * If an existing constraint exists then it will be updated instead. 34 | * 35 | * @param block scope within which you can build up the constraints which you wish to apply to each view. 36 | * 37 | * @return Array of created/updated MASConstraints 38 | */ 39 | - (NSArray *)mas_updateConstraints:(void (^)(MASConstraintMaker *make))block; 40 | 41 | /** 42 | * Creates a MASConstraintMaker with each view in the callee. 43 | * Any constraints defined are added to each view or the appropriate superview once the block has finished executing on each view. 44 | * All constraints previously installed for the views will be removed. 45 | * 46 | * @param block scope within which you can build up the constraints which you wish to apply to each view. 47 | * 48 | * @return Array of created/updated MASConstraints 49 | */ 50 | - (NSArray *)mas_remakeConstraints:(void (^)(MASConstraintMaker *make))block; 51 | 52 | /** 53 | * distribute with fixed spacing 54 | * 55 | * @param axisType which axis to distribute items along 56 | * @param fixedSpacing the spacing between each item 57 | * @param leadSpacing the spacing before the first item and the container 58 | * @param tailSpacing the spacing after the last item and the container 59 | */ 60 | - (void)mas_distributeViewsAlongAxis:(MASAxisType)axisType withFixedSpacing:(CGFloat)fixedSpacing leadSpacing:(CGFloat)leadSpacing tailSpacing:(CGFloat)tailSpacing; 61 | 62 | /** 63 | * distribute with fixed item size 64 | * 65 | * @param axisType which axis to distribute items along 66 | * @param fixedItemLength the fixed length of each item 67 | * @param leadSpacing the spacing before the first item and the container 68 | * @param tailSpacing the spacing after the last item and the container 69 | */ 70 | - (void)mas_distributeViewsAlongAxis:(MASAxisType)axisType withFixedItemLength:(CGFloat)fixedItemLength leadSpacing:(CGFloat)leadSpacing tailSpacing:(CGFloat)tailSpacing; 71 | 72 | @end 73 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/NSArray+MASShorthandAdditions.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSArray+MASShorthandAdditions.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 22/07/13. 6 | // Copyright (c) 2013 Jonas Budelmann. All rights reserved. 7 | // 8 | 9 | #import "NSArray+MASAdditions.h" 10 | 11 | #ifdef MAS_SHORTHAND 12 | 13 | /** 14 | * Shorthand array additions without the 'mas_' prefixes, 15 | * only enabled if MAS_SHORTHAND is defined 16 | */ 17 | @interface NSArray (MASShorthandAdditions) 18 | 19 | - (NSArray *)makeConstraints:(void(^)(MASConstraintMaker *make))block; 20 | - (NSArray *)updateConstraints:(void(^)(MASConstraintMaker *make))block; 21 | - (NSArray *)remakeConstraints:(void(^)(MASConstraintMaker *make))block; 22 | 23 | @end 24 | 25 | @implementation NSArray (MASShorthandAdditions) 26 | 27 | - (NSArray *)makeConstraints:(void(^)(MASConstraintMaker *))block { 28 | return [self mas_makeConstraints:block]; 29 | } 30 | 31 | - (NSArray *)updateConstraints:(void(^)(MASConstraintMaker *))block { 32 | return [self mas_updateConstraints:block]; 33 | } 34 | 35 | - (NSArray *)remakeConstraints:(void(^)(MASConstraintMaker *))block { 36 | return [self mas_remakeConstraints:block]; 37 | } 38 | 39 | @end 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/NSLayoutConstraint+MASDebugAdditions.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSLayoutConstraint+MASDebugAdditions.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 3/08/13. 6 | // Copyright (c) 2013 Jonas Budelmann. All rights reserved. 7 | // 8 | 9 | #import "MASUtilities.h" 10 | 11 | /** 12 | * makes debug and log output of NSLayoutConstraints more readable 13 | */ 14 | @interface NSLayoutConstraint (MASDebugAdditions) 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/View+MASAdditions.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIView+MASAdditions.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 20/07/13. 6 | // Copyright (c) 2013 cloudling. All rights reserved. 7 | // 8 | 9 | #import "MASUtilities.h" 10 | #import "MASConstraintMaker.h" 11 | #import "MASViewAttribute.h" 12 | 13 | /** 14 | * Provides constraint maker block 15 | * and convience methods for creating MASViewAttribute which are view + NSLayoutAttribute pairs 16 | */ 17 | @interface MAS_VIEW (MASAdditions) 18 | 19 | /** 20 | * following properties return a new MASViewAttribute with current view and appropriate NSLayoutAttribute 21 | */ 22 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_left; 23 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_top; 24 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_right; 25 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_bottom; 26 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_leading; 27 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_trailing; 28 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_width; 29 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_height; 30 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_centerX; 31 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_centerY; 32 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_baseline; 33 | @property (nonatomic, strong, readonly) MASViewAttribute *(^mas_attribute)(NSLayoutAttribute attr); 34 | 35 | #if TARGET_OS_IPHONE || TARGET_OS_TV 36 | 37 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_leftMargin; 38 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_rightMargin; 39 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_topMargin; 40 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_bottomMargin; 41 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_leadingMargin; 42 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_trailingMargin; 43 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_centerXWithinMargins; 44 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_centerYWithinMargins; 45 | 46 | #endif 47 | 48 | /** 49 | * a key to associate with this view 50 | */ 51 | @property (nonatomic, strong) id mas_key; 52 | 53 | /** 54 | * Finds the closest common superview between this view and another view 55 | * 56 | * @param view other view 57 | * 58 | * @return returns nil if common superview could not be found 59 | */ 60 | - (instancetype)mas_closestCommonSuperview:(MAS_VIEW *)view; 61 | 62 | /** 63 | * Creates a MASConstraintMaker with the callee view. 64 | * Any constraints defined are added to the view or the appropriate superview once the block has finished executing 65 | * 66 | * @param block scope within which you can build up the constraints which you wish to apply to the view. 67 | * 68 | * @return Array of created MASConstraints 69 | */ 70 | - (NSArray *)mas_makeConstraints:(void(^)(MASConstraintMaker *make))block; 71 | 72 | /** 73 | * Creates a MASConstraintMaker with the callee view. 74 | * Any constraints defined are added to the view or the appropriate superview once the block has finished executing. 75 | * If an existing constraint exists then it will be updated instead. 76 | * 77 | * @param block scope within which you can build up the constraints which you wish to apply to the view. 78 | * 79 | * @return Array of created/updated MASConstraints 80 | */ 81 | - (NSArray *)mas_updateConstraints:(void(^)(MASConstraintMaker *make))block; 82 | 83 | /** 84 | * Creates a MASConstraintMaker with the callee view. 85 | * Any constraints defined are added to the view or the appropriate superview once the block has finished executing. 86 | * All constraints previously installed for the view will be removed. 87 | * 88 | * @param block scope within which you can build up the constraints which you wish to apply to the view. 89 | * 90 | * @return Array of created/updated MASConstraints 91 | */ 92 | - (NSArray *)mas_remakeConstraints:(void(^)(MASConstraintMaker *make))block; 93 | 94 | @end 95 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/View+MASShorthandAdditions.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIView+MASShorthandAdditions.h 3 | // Masonry 4 | // 5 | // Created by Jonas Budelmann on 22/07/13. 6 | // Copyright (c) 2013 Jonas Budelmann. All rights reserved. 7 | // 8 | 9 | #import "View+MASAdditions.h" 10 | 11 | #ifdef MAS_SHORTHAND 12 | 13 | /** 14 | * Shorthand view additions without the 'mas_' prefixes, 15 | * only enabled if MAS_SHORTHAND is defined 16 | */ 17 | @interface MAS_VIEW (MASShorthandAdditions) 18 | 19 | @property (nonatomic, strong, readonly) MASViewAttribute *left; 20 | @property (nonatomic, strong, readonly) MASViewAttribute *top; 21 | @property (nonatomic, strong, readonly) MASViewAttribute *right; 22 | @property (nonatomic, strong, readonly) MASViewAttribute *bottom; 23 | @property (nonatomic, strong, readonly) MASViewAttribute *leading; 24 | @property (nonatomic, strong, readonly) MASViewAttribute *trailing; 25 | @property (nonatomic, strong, readonly) MASViewAttribute *width; 26 | @property (nonatomic, strong, readonly) MASViewAttribute *height; 27 | @property (nonatomic, strong, readonly) MASViewAttribute *centerX; 28 | @property (nonatomic, strong, readonly) MASViewAttribute *centerY; 29 | @property (nonatomic, strong, readonly) MASViewAttribute *baseline; 30 | @property (nonatomic, strong, readonly) MASViewAttribute *(^attribute)(NSLayoutAttribute attr); 31 | 32 | #if TARGET_OS_IPHONE || TARGET_OS_TV 33 | 34 | @property (nonatomic, strong, readonly) MASViewAttribute *leftMargin; 35 | @property (nonatomic, strong, readonly) MASViewAttribute *rightMargin; 36 | @property (nonatomic, strong, readonly) MASViewAttribute *topMargin; 37 | @property (nonatomic, strong, readonly) MASViewAttribute *bottomMargin; 38 | @property (nonatomic, strong, readonly) MASViewAttribute *leadingMargin; 39 | @property (nonatomic, strong, readonly) MASViewAttribute *trailingMargin; 40 | @property (nonatomic, strong, readonly) MASViewAttribute *centerXWithinMargins; 41 | @property (nonatomic, strong, readonly) MASViewAttribute *centerYWithinMargins; 42 | 43 | #endif 44 | 45 | - (NSArray *)makeConstraints:(void(^)(MASConstraintMaker *make))block; 46 | - (NSArray *)updateConstraints:(void(^)(MASConstraintMaker *make))block; 47 | - (NSArray *)remakeConstraints:(void(^)(MASConstraintMaker *make))block; 48 | 49 | @end 50 | 51 | #define MAS_ATTR_FORWARD(attr) \ 52 | - (MASViewAttribute *)attr { \ 53 | return [self mas_##attr]; \ 54 | } 55 | 56 | @implementation MAS_VIEW (MASShorthandAdditions) 57 | 58 | MAS_ATTR_FORWARD(top); 59 | MAS_ATTR_FORWARD(left); 60 | MAS_ATTR_FORWARD(bottom); 61 | MAS_ATTR_FORWARD(right); 62 | MAS_ATTR_FORWARD(leading); 63 | MAS_ATTR_FORWARD(trailing); 64 | MAS_ATTR_FORWARD(width); 65 | MAS_ATTR_FORWARD(height); 66 | MAS_ATTR_FORWARD(centerX); 67 | MAS_ATTR_FORWARD(centerY); 68 | MAS_ATTR_FORWARD(baseline); 69 | 70 | #if TARGET_OS_IPHONE || TARGET_OS_TV 71 | 72 | MAS_ATTR_FORWARD(leftMargin); 73 | MAS_ATTR_FORWARD(rightMargin); 74 | MAS_ATTR_FORWARD(topMargin); 75 | MAS_ATTR_FORWARD(bottomMargin); 76 | MAS_ATTR_FORWARD(leadingMargin); 77 | MAS_ATTR_FORWARD(trailingMargin); 78 | MAS_ATTR_FORWARD(centerXWithinMargins); 79 | MAS_ATTR_FORWARD(centerYWithinMargins); 80 | 81 | #endif 82 | 83 | - (MASViewAttribute *(^)(NSLayoutAttribute))attribute { 84 | return [self mas_attribute]; 85 | } 86 | 87 | - (NSArray *)makeConstraints:(void(^)(MASConstraintMaker *))block { 88 | return [self mas_makeConstraints:block]; 89 | } 90 | 91 | - (NSArray *)updateConstraints:(void(^)(MASConstraintMaker *))block { 92 | return [self mas_updateConstraints:block]; 93 | } 94 | 95 | - (NSArray *)remakeConstraints:(void(^)(MASConstraintMaker *))block { 96 | return [self mas_remakeConstraints:block]; 97 | } 98 | 99 | @end 100 | 101 | #endif 102 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/ViewController+MASAdditions.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+MASAdditions.h 3 | // Masonry 4 | // 5 | // Created by Craig Siemens on 2015-06-23. 6 | // 7 | // 8 | 9 | #import "MASUtilities.h" 10 | #import "MASConstraintMaker.h" 11 | #import "MASViewAttribute.h" 12 | 13 | #ifdef MAS_VIEW_CONTROLLER 14 | 15 | @interface MAS_VIEW_CONTROLLER (MASAdditions) 16 | 17 | /** 18 | * following properties return a new MASViewAttribute with appropriate UILayoutGuide and NSLayoutAttribute 19 | */ 20 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_topLayoutGuide; 21 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_bottomLayoutGuide; 22 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_topLayoutGuideTop; 23 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_topLayoutGuideBottom; 24 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_bottomLayoutGuideTop; 25 | @property (nonatomic, strong, readonly) MASViewAttribute *mas_bottomLayoutGuideBottom; 26 | 27 | 28 | @end 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /Pods/Masonry/Masonry/ViewController+MASAdditions.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+MASAdditions.m 3 | // Masonry 4 | // 5 | // Created by Craig Siemens on 2015-06-23. 6 | // 7 | // 8 | 9 | #import "ViewController+MASAdditions.h" 10 | 11 | #ifdef MAS_VIEW_CONTROLLER 12 | 13 | @implementation MAS_VIEW_CONTROLLER (MASAdditions) 14 | 15 | - (MASViewAttribute *)mas_topLayoutGuide { 16 | return [[MASViewAttribute alloc] initWithView:self.view item:self.topLayoutGuide layoutAttribute:NSLayoutAttributeBottom]; 17 | } 18 | - (MASViewAttribute *)mas_topLayoutGuideTop { 19 | return [[MASViewAttribute alloc] initWithView:self.view item:self.topLayoutGuide layoutAttribute:NSLayoutAttributeTop]; 20 | } 21 | - (MASViewAttribute *)mas_topLayoutGuideBottom { 22 | return [[MASViewAttribute alloc] initWithView:self.view item:self.topLayoutGuide layoutAttribute:NSLayoutAttributeBottom]; 23 | } 24 | 25 | - (MASViewAttribute *)mas_bottomLayoutGuide { 26 | return [[MASViewAttribute alloc] initWithView:self.view item:self.bottomLayoutGuide layoutAttribute:NSLayoutAttributeTop]; 27 | } 28 | - (MASViewAttribute *)mas_bottomLayoutGuideTop { 29 | return [[MASViewAttribute alloc] initWithView:self.view item:self.bottomLayoutGuide layoutAttribute:NSLayoutAttributeTop]; 30 | } 31 | - (MASViewAttribute *)mas_bottomLayoutGuideBottom { 32 | return [[MASViewAttribute alloc] initWithView:self.view item:self.bottomLayoutGuide layoutAttribute:NSLayoutAttributeBottom]; 33 | } 34 | 35 | 36 | 37 | @end 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/mac.xcuserdatad/xcschemes/IQKeyboardManager-framework-IQKeyboardManager.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 50 | 51 | 53 | 54 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/mac.xcuserdatad/xcschemes/IQKeyboardManager-framework.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 50 | 51 | 53 | 54 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/mac.xcuserdatad/xcschemes/IQKeyboardManager-library-IQKeyboardManager.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 50 | 51 | 53 | 54 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/mac.xcuserdatad/xcschemes/IQKeyboardManager-library.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/mac.xcuserdatad/xcschemes/Masonry-framework.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 50 | 51 | 53 | 54 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/mac.xcuserdatad/xcschemes/Masonry-library.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 45 | 46 | 52 | 53 | 55 | 56 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/mac.xcuserdatad/xcschemes/Pods-DynamicInputView-DynamicInputViewUITests.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 50 | 51 | 53 | 54 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/mac.xcuserdatad/xcschemes/Pods-DynamicInputView.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 50 | 51 | 53 | 54 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/mac.xcuserdatad/xcschemes/Pods-DynamicInputViewTests.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 43 | 44 | 50 | 51 | 53 | 54 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /Pods/Pods.xcodeproj/xcuserdata/mac.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | IQKeyboardManager-framework-IQKeyboardManager.xcscheme 8 | 9 | isShown 10 | 11 | orderHint 12 | 1 13 | 14 | IQKeyboardManager-framework.xcscheme 15 | 16 | isShown 17 | 18 | orderHint 19 | 0 20 | 21 | IQKeyboardManager-library-IQKeyboardManager.xcscheme 22 | 23 | isShown 24 | 25 | orderHint 26 | 3 27 | 28 | IQKeyboardManager-library.xcscheme 29 | 30 | isShown 31 | 32 | orderHint 33 | 2 34 | 35 | Masonry-framework.xcscheme 36 | 37 | isShown 38 | 39 | orderHint 40 | 4 41 | 42 | Masonry-library.xcscheme 43 | 44 | isShown 45 | 46 | orderHint 47 | 5 48 | 49 | Pods-DynamicInputView-DynamicInputViewUITests.xcscheme 50 | 51 | isShown 52 | 53 | orderHint 54 | 7 55 | 56 | Pods-DynamicInputView.xcscheme 57 | 58 | isShown 59 | 60 | orderHint 61 | 6 62 | 63 | Pods-DynamicInputViewTests.xcscheme 64 | 65 | isShown 66 | 67 | orderHint 68 | 8 69 | 70 | 71 | SuppressBuildableAutocreation 72 | 73 | 74 | 75 | -------------------------------------------------------------------------------- /Pods/Target Support Files/IQKeyboardManager-framework/IQKeyboardManager-framework-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 | 6.5.4 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/IQKeyboardManager-framework/IQKeyboardManager-framework-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_IQKeyboardManager_framework : NSObject 3 | @end 4 | @implementation PodsDummy_IQKeyboardManager_framework 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/IQKeyboardManager-framework/IQKeyboardManager-framework-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 | -------------------------------------------------------------------------------- /Pods/Target Support Files/IQKeyboardManager-framework/IQKeyboardManager-framework-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 | #import "IQKeyboardManager.h" 14 | #import "IQKeyboardReturnKeyHandler.h" 15 | #import "IQUIScrollView+Additions.h" 16 | #import "IQUITextFieldView+Additions.h" 17 | #import "IQUIView+Hierarchy.h" 18 | #import "IQUIViewController+Additions.h" 19 | #import "IQKeyboardManagerConstants.h" 20 | #import "IQTextView.h" 21 | #import "IQBarButtonItem.h" 22 | #import "IQPreviousNextView.h" 23 | #import "IQTitleBarButtonItem.h" 24 | #import "IQToolbar.h" 25 | #import "IQUIView+IQKeyboardToolbar.h" 26 | 27 | FOUNDATION_EXPORT double IQKeyboardManagerVersionNumber; 28 | FOUNDATION_EXPORT const unsigned char IQKeyboardManagerVersionString[]; 29 | 30 | -------------------------------------------------------------------------------- /Pods/Target Support Files/IQKeyboardManager-framework/IQKeyboardManager-framework.modulemap: -------------------------------------------------------------------------------- 1 | framework module IQKeyboardManager { 2 | umbrella header "IQKeyboardManager-framework-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/IQKeyboardManager-framework/IQKeyboardManager-framework.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager-framework 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" 4 | OTHER_LDFLAGS = $(inherited) -framework "CoreGraphics" -framework "Foundation" -framework "QuartzCore" -framework "UIKit" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/IQKeyboardManager 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 12 | -------------------------------------------------------------------------------- /Pods/Target Support Files/IQKeyboardManager-framework/ResourceBundle-IQKeyboardManager-IQKeyboardManager-framework-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleIdentifier 8 | ${PRODUCT_BUNDLE_IDENTIFIER} 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundleName 12 | ${PRODUCT_NAME} 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 6.5.4 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | NSPrincipalClass 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /Pods/Target Support Files/IQKeyboardManager-library/IQKeyboardManager-library-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_IQKeyboardManager_library : NSObject 3 | @end 4 | @implementation PodsDummy_IQKeyboardManager_library 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/IQKeyboardManager-library/IQKeyboardManager-library-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 | -------------------------------------------------------------------------------- /Pods/Target Support Files/IQKeyboardManager-library/IQKeyboardManager-library.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager-library 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/IQKeyboardManager" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/IQKeyboardManager" 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}/IQKeyboardManager 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/IQKeyboardManager-library/ResourceBundle-IQKeyboardManager-IQKeyboardManager-library-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleIdentifier 8 | ${PRODUCT_BUNDLE_IDENTIFIER} 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundleName 12 | ${PRODUCT_NAME} 13 | CFBundlePackageType 14 | BNDL 15 | CFBundleShortVersionString 16 | 6.5.4 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1 21 | NSPrincipalClass 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Masonry-framework/Masonry-framework-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 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Masonry-framework/Masonry-framework-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Masonry_framework : NSObject 3 | @end 4 | @implementation PodsDummy_Masonry_framework 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Masonry-framework/Masonry-framework-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 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Masonry-framework/Masonry-framework-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 | #import "MASCompositeConstraint.h" 14 | #import "MASConstraint+Private.h" 15 | #import "MASConstraint.h" 16 | #import "MASConstraintMaker.h" 17 | #import "MASLayoutConstraint.h" 18 | #import "Masonry.h" 19 | #import "MASUtilities.h" 20 | #import "MASViewAttribute.h" 21 | #import "MASViewConstraint.h" 22 | #import "NSArray+MASAdditions.h" 23 | #import "NSArray+MASShorthandAdditions.h" 24 | #import "NSLayoutConstraint+MASDebugAdditions.h" 25 | #import "View+MASAdditions.h" 26 | #import "View+MASShorthandAdditions.h" 27 | #import "ViewController+MASAdditions.h" 28 | 29 | FOUNDATION_EXPORT double MasonryVersionNumber; 30 | FOUNDATION_EXPORT const unsigned char MasonryVersionString[]; 31 | 32 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Masonry-framework/Masonry-framework.modulemap: -------------------------------------------------------------------------------- 1 | framework module Masonry { 2 | umbrella header "Masonry-framework-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Masonry-framework/Masonry-framework.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Masonry-framework 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" 4 | OTHER_LDFLAGS = $(inherited) -framework "Foundation" -framework "UIKit" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Masonry 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 12 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Masonry-library/Masonry-library-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Masonry_library : NSObject 3 | @end 4 | @implementation PodsDummy_Masonry_library 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Masonry-library/Masonry-library-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 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Masonry-library/Masonry-library.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Masonry-library 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Masonry" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Masonry" 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}/Masonry 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-DynamicInputView-DynamicInputViewUITests/Pods-DynamicInputView-DynamicInputViewUITests-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 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-DynamicInputView-DynamicInputViewUITests/Pods-DynamicInputView-DynamicInputViewUITests-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | 4 | ## IQKeyboardManager 5 | 6 | MIT License 7 | 8 | Copyright (c) 2013-2017 Iftekhar Qurashi 9 | 10 | Permission is hereby granted, free of charge, to any person obtaining a copy 11 | of this software and associated documentation files (the "Software"), to deal 12 | in the Software without restriction, including without limitation the rights 13 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 14 | copies of the Software, and to permit persons to whom the Software is 15 | furnished to do so, subject to the following conditions: 16 | 17 | The above copyright notice and this permission notice shall be included in all 18 | copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 23 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 26 | SOFTWARE. 27 | 28 | 29 | ## Masonry 30 | 31 | Copyright (c) 2011-2012 Masonry Team - https://github.com/Masonry 32 | 33 | Permission is hereby granted, free of charge, to any person obtaining a copy 34 | of this software and associated documentation files (the "Software"), to deal 35 | in the Software without restriction, including without limitation the rights 36 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 37 | copies of the Software, and to permit persons to whom the Software is 38 | furnished to do so, subject to the following conditions: 39 | 40 | The above copyright notice and this permission notice shall be included in 41 | all copies or substantial portions of the Software. 42 | 43 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 44 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 45 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 46 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 47 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 48 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 49 | THE SOFTWARE. 50 | Generated by CocoaPods - https://cocoapods.org 51 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-DynamicInputView-DynamicInputViewUITests/Pods-DynamicInputView-DynamicInputViewUITests-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 | MIT License 18 | 19 | Copyright (c) 2013-2017 Iftekhar Qurashi 20 | 21 | Permission is hereby granted, free of charge, to any person obtaining a copy 22 | of this software and associated documentation files (the "Software"), to deal 23 | in the Software without restriction, including without limitation the rights 24 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 25 | copies of the Software, and to permit persons to whom the Software is 26 | furnished to do so, subject to the following conditions: 27 | 28 | The above copyright notice and this permission notice shall be included in all 29 | copies or substantial portions of the Software. 30 | 31 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 32 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 33 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 34 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 35 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 36 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 37 | SOFTWARE. 38 | 39 | License 40 | MIT 41 | Title 42 | IQKeyboardManager 43 | Type 44 | PSGroupSpecifier 45 | 46 | 47 | FooterText 48 | Copyright (c) 2011-2012 Masonry Team - https://github.com/Masonry 49 | 50 | Permission is hereby granted, free of charge, to any person obtaining a copy 51 | of this software and associated documentation files (the "Software"), to deal 52 | in the Software without restriction, including without limitation the rights 53 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 54 | copies of the Software, and to permit persons to whom the Software is 55 | furnished to do so, subject to the following conditions: 56 | 57 | The above copyright notice and this permission notice shall be included in 58 | all copies or substantial portions of the Software. 59 | 60 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 61 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 62 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 63 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 64 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 65 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 66 | THE SOFTWARE. 67 | License 68 | MIT 69 | Title 70 | Masonry 71 | Type 72 | PSGroupSpecifier 73 | 74 | 75 | FooterText 76 | Generated by CocoaPods - https://cocoapods.org 77 | Title 78 | 79 | Type 80 | PSGroupSpecifier 81 | 82 | 83 | StringsTable 84 | Acknowledgements 85 | Title 86 | Acknowledgements 87 | 88 | 89 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-DynamicInputView-DynamicInputViewUITests/Pods-DynamicInputView-DynamicInputViewUITests-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_DynamicInputView_DynamicInputViewUITests : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_DynamicInputView_DynamicInputViewUITests 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-DynamicInputView-DynamicInputViewUITests/Pods-DynamicInputView-DynamicInputViewUITests-frameworks-Debug-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-DynamicInputView-DynamicInputViewUITests/Pods-DynamicInputView-DynamicInputViewUITests-frameworks.sh 2 | ${BUILT_PRODUCTS_DIR}/IQKeyboardManager-framework/IQKeyboardManager.framework 3 | ${BUILT_PRODUCTS_DIR}/Masonry-framework/Masonry.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-DynamicInputView-DynamicInputViewUITests/Pods-DynamicInputView-DynamicInputViewUITests-frameworks-Debug-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/IQKeyboardManager.framework 2 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Masonry.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-DynamicInputView-DynamicInputViewUITests/Pods-DynamicInputView-DynamicInputViewUITests-frameworks-Release-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-DynamicInputView-DynamicInputViewUITests/Pods-DynamicInputView-DynamicInputViewUITests-frameworks.sh 2 | ${BUILT_PRODUCTS_DIR}/IQKeyboardManager-framework/IQKeyboardManager.framework 3 | ${BUILT_PRODUCTS_DIR}/Masonry-framework/Masonry.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-DynamicInputView-DynamicInputViewUITests/Pods-DynamicInputView-DynamicInputViewUITests-frameworks-Release-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/IQKeyboardManager.framework 2 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Masonry.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-DynamicInputView-DynamicInputViewUITests/Pods-DynamicInputView-DynamicInputViewUITests-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_DynamicInputView_DynamicInputViewUITestsVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_DynamicInputView_DynamicInputViewUITestsVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-DynamicInputView-DynamicInputViewUITests/Pods-DynamicInputView-DynamicInputViewUITests.debug.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager-framework" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry-framework" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager-framework/IQKeyboardManager.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry-framework/Masonry.framework/Headers" 4 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 5 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager-framework/IQKeyboardManager.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Masonry-framework/Masonry.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager-framework" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Masonry-framework" 6 | OTHER_LDFLAGS = $(inherited) -framework "CoreGraphics" -framework "Foundation" -framework "IQKeyboardManager" -framework "Masonry" -framework "QuartzCore" -framework "UIKit" 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 10 | PODS_ROOT = ${SRCROOT}/Pods 11 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 12 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-DynamicInputView-DynamicInputViewUITests/Pods-DynamicInputView-DynamicInputViewUITests.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_DynamicInputView_DynamicInputViewUITests { 2 | umbrella header "Pods-DynamicInputView-DynamicInputViewUITests-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-DynamicInputView-DynamicInputViewUITests/Pods-DynamicInputView-DynamicInputViewUITests.release.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager-framework" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry-framework" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager-framework/IQKeyboardManager.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry-framework/Masonry.framework/Headers" 4 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 5 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager-framework/IQKeyboardManager.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Masonry-framework/Masonry.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager-framework" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Masonry-framework" 6 | OTHER_LDFLAGS = $(inherited) -framework "CoreGraphics" -framework "Foundation" -framework "IQKeyboardManager" -framework "Masonry" -framework "QuartzCore" -framework "UIKit" 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 10 | PODS_ROOT = ${SRCROOT}/Pods 11 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 12 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-DynamicInputView/Pods-DynamicInputView-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 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-DynamicInputView/Pods-DynamicInputView-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | 4 | ## IQKeyboardManager 5 | 6 | MIT License 7 | 8 | Copyright (c) 2013-2017 Iftekhar Qurashi 9 | 10 | Permission is hereby granted, free of charge, to any person obtaining a copy 11 | of this software and associated documentation files (the "Software"), to deal 12 | in the Software without restriction, including without limitation the rights 13 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 14 | copies of the Software, and to permit persons to whom the Software is 15 | furnished to do so, subject to the following conditions: 16 | 17 | The above copyright notice and this permission notice shall be included in all 18 | copies or substantial portions of the Software. 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 23 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 26 | SOFTWARE. 27 | 28 | 29 | ## Masonry 30 | 31 | Copyright (c) 2011-2012 Masonry Team - https://github.com/Masonry 32 | 33 | Permission is hereby granted, free of charge, to any person obtaining a copy 34 | of this software and associated documentation files (the "Software"), to deal 35 | in the Software without restriction, including without limitation the rights 36 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 37 | copies of the Software, and to permit persons to whom the Software is 38 | furnished to do so, subject to the following conditions: 39 | 40 | The above copyright notice and this permission notice shall be included in 41 | all copies or substantial portions of the Software. 42 | 43 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 44 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 45 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 46 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 47 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 48 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 49 | THE SOFTWARE. 50 | Generated by CocoaPods - https://cocoapods.org 51 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-DynamicInputView/Pods-DynamicInputView-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 | MIT License 18 | 19 | Copyright (c) 2013-2017 Iftekhar Qurashi 20 | 21 | Permission is hereby granted, free of charge, to any person obtaining a copy 22 | of this software and associated documentation files (the "Software"), to deal 23 | in the Software without restriction, including without limitation the rights 24 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 25 | copies of the Software, and to permit persons to whom the Software is 26 | furnished to do so, subject to the following conditions: 27 | 28 | The above copyright notice and this permission notice shall be included in all 29 | copies or substantial portions of the Software. 30 | 31 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 32 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 33 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 34 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 35 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 36 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 37 | SOFTWARE. 38 | 39 | License 40 | MIT 41 | Title 42 | IQKeyboardManager 43 | Type 44 | PSGroupSpecifier 45 | 46 | 47 | FooterText 48 | Copyright (c) 2011-2012 Masonry Team - https://github.com/Masonry 49 | 50 | Permission is hereby granted, free of charge, to any person obtaining a copy 51 | of this software and associated documentation files (the "Software"), to deal 52 | in the Software without restriction, including without limitation the rights 53 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 54 | copies of the Software, and to permit persons to whom the Software is 55 | furnished to do so, subject to the following conditions: 56 | 57 | The above copyright notice and this permission notice shall be included in 58 | all copies or substantial portions of the Software. 59 | 60 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 61 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 62 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 63 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 64 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 65 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 66 | THE SOFTWARE. 67 | License 68 | MIT 69 | Title 70 | Masonry 71 | Type 72 | PSGroupSpecifier 73 | 74 | 75 | FooterText 76 | Generated by CocoaPods - https://cocoapods.org 77 | Title 78 | 79 | Type 80 | PSGroupSpecifier 81 | 82 | 83 | StringsTable 84 | Acknowledgements 85 | Title 86 | Acknowledgements 87 | 88 | 89 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-DynamicInputView/Pods-DynamicInputView-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_DynamicInputView : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_DynamicInputView 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-DynamicInputView/Pods-DynamicInputView-frameworks-Debug-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-DynamicInputView/Pods-DynamicInputView-frameworks.sh 2 | ${BUILT_PRODUCTS_DIR}/IQKeyboardManager-framework/IQKeyboardManager.framework 3 | ${BUILT_PRODUCTS_DIR}/Masonry-framework/Masonry.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-DynamicInputView/Pods-DynamicInputView-frameworks-Debug-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/IQKeyboardManager.framework 2 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Masonry.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-DynamicInputView/Pods-DynamicInputView-frameworks-Release-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-DynamicInputView/Pods-DynamicInputView-frameworks.sh 2 | ${BUILT_PRODUCTS_DIR}/IQKeyboardManager-framework/IQKeyboardManager.framework 3 | ${BUILT_PRODUCTS_DIR}/Masonry-framework/Masonry.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-DynamicInputView/Pods-DynamicInputView-frameworks-Release-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/IQKeyboardManager.framework 2 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Masonry.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-DynamicInputView/Pods-DynamicInputView-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_DynamicInputViewVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_DynamicInputViewVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-DynamicInputView/Pods-DynamicInputView.debug.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager-framework" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry-framework" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager-framework/IQKeyboardManager.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry-framework/Masonry.framework/Headers" 4 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 5 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager-framework/IQKeyboardManager.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Masonry-framework/Masonry.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager-framework" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Masonry-framework" 6 | OTHER_LDFLAGS = $(inherited) -framework "CoreGraphics" -framework "Foundation" -framework "IQKeyboardManager" -framework "Masonry" -framework "QuartzCore" -framework "UIKit" 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 10 | PODS_ROOT = ${SRCROOT}/Pods 11 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 12 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-DynamicInputView/Pods-DynamicInputView.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_DynamicInputView { 2 | umbrella header "Pods-DynamicInputView-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-DynamicInputView/Pods-DynamicInputView.release.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager-framework" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry-framework" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager-framework/IQKeyboardManager.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry-framework/Masonry.framework/Headers" 4 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' 5 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager-framework/IQKeyboardManager.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Masonry-framework/Masonry.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager-framework" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Masonry-framework" 6 | OTHER_LDFLAGS = $(inherited) -framework "CoreGraphics" -framework "Foundation" -framework "IQKeyboardManager" -framework "Masonry" -framework "QuartzCore" -framework "UIKit" 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 10 | PODS_ROOT = ${SRCROOT}/Pods 11 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 12 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-DynamicInputViewTests/Pods-DynamicInputViewTests-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 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-DynamicInputViewTests/Pods-DynamicInputViewTests-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | Generated by CocoaPods - https://cocoapods.org 4 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-DynamicInputViewTests/Pods-DynamicInputViewTests-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 | Generated by CocoaPods - https://cocoapods.org 18 | Title 19 | 20 | Type 21 | PSGroupSpecifier 22 | 23 | 24 | StringsTable 25 | Acknowledgements 26 | Title 27 | Acknowledgements 28 | 29 | 30 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-DynamicInputViewTests/Pods-DynamicInputViewTests-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_DynamicInputViewTests : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_DynamicInputViewTests 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-DynamicInputViewTests/Pods-DynamicInputViewTests-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_DynamicInputViewTestsVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_DynamicInputViewTestsVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-DynamicInputViewTests/Pods-DynamicInputViewTests.debug.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager-framework" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry-framework" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager-framework/IQKeyboardManager.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry-framework/Masonry.framework/Headers" 4 | OTHER_LDFLAGS = $(inherited) -framework "CoreGraphics" -framework "Foundation" -framework "IQKeyboardManager" -framework "Masonry" -framework "QuartzCore" -framework "UIKit" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 8 | PODS_ROOT = ${SRCROOT}/Pods 9 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-DynamicInputViewTests/Pods-DynamicInputViewTests.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_DynamicInputViewTests { 2 | umbrella header "Pods-DynamicInputViewTests-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-DynamicInputViewTests/Pods-DynamicInputViewTests.release.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager-framework" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry-framework" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/IQKeyboardManager-framework/IQKeyboardManager.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Masonry-framework/Masonry.framework/Headers" 4 | OTHER_LDFLAGS = $(inherited) -framework "CoreGraphics" -framework "Foundation" -framework "IQKeyboardManager" -framework "Masonry" -framework "QuartzCore" -framework "UIKit" 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 8 | PODS_ROOT = ${SRCROOT}/Pods 9 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 10 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # GHDynamicInputView 2 | 带删除键的TextView 3 | 4 | 效果 5 | 6 | ![Untitled.gif](https://upload-images.jianshu.io/upload_images/1419035-916e015f017c7785.gif?imageMogr2/auto-orient/strip) 7 | --------------------------------------------------------------------------------