From a0c61e76705f88e365c7465a1a9ba90a44da3255 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Sema=C5=84czyk?= Date: Fri, 26 Aug 2016 10:11:46 +0200 Subject: [PATCH] Allow to change placeholder at any time. --- BSSelectableView.podspec | 2 +- .../Classes/BSMultiSelectableView.swift | 46 +- .../Classes/BSScrollTokenView.swift | 47 +- .../Classes/BSSelectableView.swift | 41 +- .../Classes/BSSingleSelectableView.swift | 10 +- BSSelectableView/Classes/BSTokenView.swift | 60 +- .../UserInterfaceState.xcuserstate | Bin 49740 -> 48560 bytes .../BSSelectedTokenFieldView.xib | 2 +- .../Base.lproj/Main.storyboard | 14 +- Example/BSSelectableView/ViewController.swift | 10 +- .../BSSelectableView.podspec.json | 22 + Example/Pods/Manifest.lock | 16 + Example/Pods/Pods.xcodeproj/project.pbxproj | 711 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../UserInterfaceState.xcuserstate | Bin 0 -> 5662 bytes .../WorkspaceSettings.xcsettings | 8 + .../xcschemes/BSSelectableView.xcscheme | 60 ++ .../Pods-BSSelectableView_Example.xcscheme | 71 ++ .../Pods-BSSelectableView_Tests.xcscheme | 71 ++ .../xcschemes/xcschememanagement.plist | 42 ++ .../BSSelectableView/BSSelectableView-dummy.m | 5 + .../BSSelectableView-prefix.pch | 4 + .../BSSelectableView-umbrella.h | 6 + .../BSSelectableView.modulemap | 6 + .../BSSelectableView.xcconfig | 9 + .../BSSelectableView/Info.plist | 26 + .../Pods-BSSelectableView_Example/Info.plist | 26 + ...ableView_Example-acknowledgements.markdown | 26 + ...ectableView_Example-acknowledgements.plist | 56 ++ .../Pods-BSSelectableView_Example-dummy.m | 5 + ...ods-BSSelectableView_Example-frameworks.sh | 91 +++ ...Pods-BSSelectableView_Example-resources.sh | 102 +++ .../Pods-BSSelectableView_Example-umbrella.h | 6 + ...ds-BSSelectableView_Example.debug.xcconfig | 10 + .../Pods-BSSelectableView_Example.modulemap | 6 + ...-BSSelectableView_Example.release.xcconfig | 10 + .../Pods-BSSelectableView_Tests/Info.plist | 26 + ...ctableView_Tests-acknowledgements.markdown | 3 + ...electableView_Tests-acknowledgements.plist | 29 + .../Pods-BSSelectableView_Tests-dummy.m | 5 + .../Pods-BSSelectableView_Tests-frameworks.sh | 84 +++ .../Pods-BSSelectableView_Tests-resources.sh | 102 +++ .../Pods-BSSelectableView_Tests-umbrella.h | 6 + ...Pods-BSSelectableView_Tests.debug.xcconfig | 7 + .../Pods-BSSelectableView_Tests.modulemap | 6 + ...ds-BSSelectableView_Tests.release.xcconfig | 7 + README.md | 24 +- 47 files changed, 1780 insertions(+), 153 deletions(-) create mode 100644 Example/Pods/Local Podspecs/BSSelectableView.podspec.json create mode 100644 Example/Pods/Manifest.lock create mode 100644 Example/Pods/Pods.xcodeproj/project.pbxproj create mode 100644 Example/Pods/Pods.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Example/Pods/Pods.xcodeproj/project.xcworkspace/xcuserdata/kuna.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 Example/Pods/Pods.xcodeproj/project.xcworkspace/xcuserdata/kuna.xcuserdatad/WorkspaceSettings.xcsettings create mode 100644 Example/Pods/Pods.xcodeproj/xcuserdata/kuna.xcuserdatad/xcschemes/BSSelectableView.xcscheme create mode 100644 Example/Pods/Pods.xcodeproj/xcuserdata/kuna.xcuserdatad/xcschemes/Pods-BSSelectableView_Example.xcscheme create mode 100644 Example/Pods/Pods.xcodeproj/xcuserdata/kuna.xcuserdatad/xcschemes/Pods-BSSelectableView_Tests.xcscheme create mode 100644 Example/Pods/Pods.xcodeproj/xcuserdata/kuna.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 Example/Pods/Target Support Files/BSSelectableView/BSSelectableView-dummy.m create mode 100644 Example/Pods/Target Support Files/BSSelectableView/BSSelectableView-prefix.pch create mode 100644 Example/Pods/Target Support Files/BSSelectableView/BSSelectableView-umbrella.h create mode 100644 Example/Pods/Target Support Files/BSSelectableView/BSSelectableView.modulemap create mode 100644 Example/Pods/Target Support Files/BSSelectableView/BSSelectableView.xcconfig create mode 100644 Example/Pods/Target Support Files/BSSelectableView/Info.plist create mode 100644 Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Info.plist create mode 100644 Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example-acknowledgements.markdown create mode 100644 Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example-acknowledgements.plist create mode 100644 Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example-dummy.m create mode 100755 Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example-frameworks.sh create mode 100755 Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example-resources.sh create mode 100644 Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example-umbrella.h create mode 100644 Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example.debug.xcconfig create mode 100644 Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example.modulemap create mode 100644 Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example.release.xcconfig create mode 100644 Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Info.plist create mode 100644 Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests-acknowledgements.markdown create mode 100644 Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests-acknowledgements.plist create mode 100644 Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests-dummy.m create mode 100755 Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests-frameworks.sh create mode 100755 Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests-resources.sh create mode 100644 Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests-umbrella.h create mode 100644 Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests.debug.xcconfig create mode 100644 Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests.modulemap create mode 100644 Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests.release.xcconfig diff --git a/BSSelectableView.podspec b/BSSelectableView.podspec index ddc3c18..0ad3e76 100644 --- a/BSSelectableView.podspec +++ b/BSSelectableView.podspec @@ -9,7 +9,7 @@ Pod::Spec.new do |s| s.name = 'BSSelectableView' - s.version = '1.0.9' + s.version = '1.1' s.summary = 'Easily manage your token along with your single or multiply select view.' s.description = "Looking for simple Swift library to manage multiply or single selection? This one is for you:)" diff --git a/BSSelectableView/Classes/BSMultiSelectableView.swift b/BSSelectableView/Classes/BSMultiSelectableView.swift index 6956abe..0054b3f 100644 --- a/BSSelectableView/Classes/BSMultiSelectableView.swift +++ b/BSSelectableView/Classes/BSMultiSelectableView.swift @@ -6,7 +6,10 @@ // Copyright (c) 2016 Bartłomiej Semańczyk. All rights reserved. // -@IBDesignable public class BSMultiSelectableView: BSSelectableView, UITableViewDataSource, UITableViewDelegate, BSTokenViewDataSource { +@IBDesignable public class BSMultiSelectableView: BSSelectableView, UITableViewDataSource, UITableViewDelegate { + + @IBInspectable public var lineHeight: CGFloat = 30 + @IBInspectable public var margin: CGFloat = 0 @IBOutlet public var tokenView: BSTokenView? @IBOutlet public var scrollTokenView: BSScrollTokenView? @@ -43,8 +46,12 @@ tableView.delegate = self tableView.dataSource = self - tokenView?.dataSource = self - scrollTokenView?.dataSource = self + + tokenView?.multiselectableView = self + scrollTokenView?.multiselectableView = self + + tokenView?.reloadData() + scrollTokenView?.reloadData() } //MARK: - Deinitialization @@ -59,6 +66,10 @@ expanded = !expanded } + func viewForTokenAtIndex(index: Int) -> UIView? { + return delegate?.multiSelectableView?(self, tokenViewForOption: selectedOptions[index], atIndex: index) + } + //MARK: - Private //MARK: - Overridden @@ -75,10 +86,11 @@ let option = options[indexPath.row] cell.titleLabel.text = option.title - cell.accessoryType = .None cell.titleLabel.font = BSSelectableView.fontForOption cell.titleLabel.textColor = BSSelectableView.titleColorForOption cell.leftPaddingConstraint.constant = CGFloat(BSSelectableView.leftPaddingForOption) + + cell.accessoryType = .None cell.layoutMargins = UIEdgeInsetsZero cell.selectionStyle = .None @@ -98,30 +110,4 @@ delegate?.multiSelectableView?(self, didSelectOption: selectedOption) } - - //MARK: - BSTokenViewDataSource - - func lineHeightForToken() -> CGFloat { - return delegate?.lineHeightForTokenInMultiSelectableView?() ?? 30 - } - - func numberOfTokens() -> Int { - return selectedOptions.count - } - - func viewForTokenAtIndex(index: Int) -> UIView? { - return delegate?.multiSelectableView?(self, tokenViewForOption: selectedOptions[index], atIndex: index) - } - - func tokenViewDidRefreshWithHeight(height: CGFloat) { - tokenViewHeightConstraint?.constant = height - } - - func textForPlaceholder() -> String { - return placeholderText - } - - func marginForToken() -> CGFloat { - return delegate?.marginForTokenInMultiSelectableView?() ?? 0 - } } diff --git a/BSSelectableView/Classes/BSScrollTokenView.swift b/BSSelectableView/Classes/BSScrollTokenView.swift index 9612907..65c9561 100644 --- a/BSSelectableView/Classes/BSScrollTokenView.swift +++ b/BSSelectableView/Classes/BSScrollTokenView.swift @@ -8,32 +8,15 @@ public class BSScrollTokenView: UIScrollView { - weak var dataSource: BSTokenViewDataSource? + var multiselectableView: BSMultiSelectableView? private var tokenViews = [UIView]() + private var placeholderLabel = UILabel() //MARK: - Class Methods //MARK: - Initialization - required public init?(coder aDecoder: NSCoder) { - super.init(coder: aDecoder) - - reloadData() - } - - override public init(frame: CGRect) { - super.init(frame: frame) - - reloadData() - } - - override public func awakeFromNib() { - super.awakeFromNib() - - reloadData() - } - //MARK: - Deinitialization //MARK: - Actions @@ -50,11 +33,11 @@ public class BSScrollTokenView: UIScrollView { tokenViews.removeAll() - let count = dataSource?.numberOfTokens() ?? 0 + let count = multiselectableView?.selectedOptions.count ?? 0 for index in 0.. Void) { var x: CGFloat = 0 - let margin = dataSource?.marginForToken() ?? 0 + let margin = multiselectableView?.margin ?? 0 for token in tokenViews { @@ -111,11 +98,11 @@ public class BSScrollTokenView: UIScrollView { override public func intrinsicContentSize() -> CGSize { - let lineHeight = dataSource?.lineHeightForToken() ?? 30 + let lineHeight = multiselectableView?.lineHeight ?? 0 if tokenViews.isEmpty { - dataSource?.tokenViewDidRefreshWithHeight(lineHeight) + multiselectableView?.tokenViewHeightConstraint?.constant = lineHeight return CGSizeZero } @@ -125,7 +112,7 @@ public class BSScrollTokenView: UIScrollView { totalRect = CGRectUnion(itemRect, totalRect) } - dataSource?.tokenViewDidRefreshWithHeight(max(totalRect.size.height, lineHeight)) + multiselectableView?.tokenViewHeightConstraint?.constant = max(totalRect.size.height, lineHeight) contentSize = CGSizeMake(totalRect.size.width, totalRect.size.height) return totalRect.size diff --git a/BSSelectableView/Classes/BSSelectableView.swift b/BSSelectableView/Classes/BSSelectableView.swift index 8a7d207..432c7bb 100644 --- a/BSSelectableView/Classes/BSSelectableView.swift +++ b/BSSelectableView/Classes/BSSelectableView.swift @@ -23,13 +23,10 @@ public class BSSelectableOption: NSObject { @objc public protocol BSSelectableViewDelegate { - optional func selectableOptionsForSelectableViewWithIdentifier(identifier: String) -> [BSSelectableOption] optional func multiSelectableView(view: BSMultiSelectableView, tokenViewForOption option: BSSelectableOption, atIndex index: Int) -> UIView optional func singleSelectableView(view: BSSingleSelectableView, didSelectOption option: BSSelectableOption) optional func multiSelectableView(view: BSMultiSelectableView, didSelectOption option: BSSelectableOption) - optional func lineHeightForTokenInMultiSelectableView() -> CGFloat - optional func marginForTokenInMultiSelectableView() -> CGFloat optional func selectableViewToggledOptionsWithButton(button: UIButton, expanded: Bool) } @@ -37,20 +34,31 @@ let BSSelectableTableViewCellIdentifier = "SelectableTableViewCellIdentifier" public class BSSelectableView: UIView { - static public var tintColorForSelectedOption = UIColor.blueColor() - static public var titleColorForSelectedOption = UIColor.greenColor() - static public var titleColorForOption = UIColor.blackColor() static public var fontForOption = UIFont.systemFontOfSize(16) + static public var fontForPlaceholderText = UIFont.systemFontOfSize(14) + + static public var leftPaddingForPlaceholderText = 0 static public var leftPaddingForOption = 20 static public var heightForOption = 40 - static public var leftPaddingForPlaceholderText = 0 - static public var fontForPlaceholderText = UIFont.systemFontOfSize(14) + + static public var tintColorForSelectedOption = UIColor.blueColor() + static public var titleColorForSelectedOption = UIColor.greenColor() + static public var titleColorForOption = UIColor.blackColor() static public var textColorForPlaceholderText = UIColor.grayColor() @IBInspectable public var identifier: String = "" @IBInspectable public var tableViewAccessibilityIdentifier: String = "" @IBInspectable public var maxNumberOfRows: Int = 6 - @IBInspectable public var placeholderText: String = "" + @IBInspectable public var placeholder: String = "" { + + didSet { + + (self as? BSMultiSelectableView)?.tokenView?.setupPlaceholderLabel() + (self as? BSMultiSelectableView)?.scrollTokenView?.setupPlaceholderLabel() + (self as? BSSingleSelectableView)?.setupLabel() + } + } + @IBInspectable public var cornerRadius: CGFloat = 3 { didSet { @@ -64,16 +72,7 @@ public class BSSelectableView: UIView { @IBOutlet public var contentOptionsHeightConstraint: NSLayoutConstraint? @IBOutlet public var contentOptionsView: UIView? - weak public var delegate: BSSelectableViewDelegate? { - - didSet { - - options = delegate?.selectableOptionsForSelectableViewWithIdentifier?(identifier) ?? options - (self as? BSMultiSelectableView)?.tokenView?.reloadData() - (self as? BSMultiSelectableView)?.scrollTokenView?.reloadData() - (self as? BSSingleSelectableView)?.setupLabel() - } - } + weak public var delegate: BSSelectableViewDelegate? public var options = [BSSelectableOption]() { @@ -127,6 +126,10 @@ public class BSSelectableView: UIView { contentOptionsView.addConstraints([topConstraint, trailingConstraint, bottomConstraint, leadingConstraint]) contentOptionsView.layoutIfNeeded() } + + (self as? BSMultiSelectableView)?.tokenView?.reloadData() + (self as? BSMultiSelectableView)?.scrollTokenView?.reloadData() + (self as? BSSingleSelectableView)?.setupLabel() } //MARK: - Deinitialization diff --git a/BSSelectableView/Classes/BSSingleSelectableView.swift b/BSSelectableView/Classes/BSSingleSelectableView.swift index 6227eb9..ca2d730 100644 --- a/BSSelectableView/Classes/BSSingleSelectableView.swift +++ b/BSSelectableView/Classes/BSSingleSelectableView.swift @@ -28,7 +28,6 @@ tableView.delegate = self tableView.dataSource = self - options = delegate?.selectableOptionsForSelectableViewWithIdentifier?(identifier) ?? options } //MARK: - Deinitialization @@ -52,15 +51,15 @@ if selectedOption == nil { - selectedOptionLabel?.text = placeholderText + selectedOptionLabel?.text = placeholder selectedOptionLabel?.font = BSSelectableView.fontForPlaceholderText selectedOptionLabel?.textColor = BSSelectableView.textColorForPlaceholderText } else { selectedOptionLabel?.text = selectedOption?.title - selectedOptionLabel?.textColor = BSSelectableView.titleColorForOption selectedOptionLabel?.font = BSSelectableView.fontForOption + selectedOptionLabel?.textColor = BSSelectableView.titleColorForOption } } @@ -80,11 +79,12 @@ let option = options[indexPath.row] cell.titleLabel.text = option.title - cell.accessoryType = option.identifier == selectedOption?.identifier ? .Checkmark : .None - cell.tintColor = BSSelectableView.tintColorForSelectedOption cell.titleLabel.font = BSSelectableView.fontForOption cell.titleLabel.textColor = option.identifier == selectedOption?.identifier ? BSSelectableView.titleColorForSelectedOption : BSSelectableView.titleColorForOption cell.leftPaddingConstraint.constant = CGFloat(BSSelectableView.leftPaddingForOption) + + cell.accessoryType = option.identifier == selectedOption?.identifier ? .Checkmark : .None + cell.tintColor = BSSelectableView.tintColorForSelectedOption cell.layoutMargins = UIEdgeInsetsZero cell.selectionStyle = .None diff --git a/BSSelectableView/Classes/BSTokenView.swift b/BSSelectableView/Classes/BSTokenView.swift index 91b9eae..22feaad 100644 --- a/BSSelectableView/Classes/BSTokenView.swift +++ b/BSSelectableView/Classes/BSTokenView.swift @@ -7,44 +7,17 @@ // Copyright (c) 2016 Bartłomiej Semańczyk. All rights reserved. // -@objc protocol BSTokenViewDataSource: class { - - func marginForToken() -> CGFloat - func lineHeightForToken() -> CGFloat - func numberOfTokens() -> Int - func viewForTokenAtIndex(index: Int) -> UIView? - func tokenViewDidRefreshWithHeight(height: CGFloat) - func textForPlaceholder() -> String -} - public class BSTokenView: UIControl { - weak var dataSource: BSTokenViewDataSource? + var multiselectableView: BSMultiSelectableView? private var tokenViews = [UIView]() + private var placeholderLabel = UILabel() //MARK: - Class Methods //MARK: - Initialization - required public init?(coder aDecoder: NSCoder) { - super.init(coder: aDecoder) - - reloadData() - } - - override public init(frame: CGRect) { - super.init(frame: frame) - - reloadData() - } - - override public func awakeFromNib() { - super.awakeFromNib() - - reloadData() - } - //MARK: - Deinitialization //MARK: - Actions @@ -61,11 +34,11 @@ public class BSTokenView: UIControl { tokenViews.removeAll() - let count = dataSource?.numberOfTokens() ?? 0 + let count = multiselectableView?.selectedOptions.count ?? 0 for index in 0.. CGSize { - let lineHeight = dataSource?.lineHeightForToken() ?? 30 + let lineHeight = multiselectableView?.lineHeight ?? 0 if tokenViews.isEmpty { - dataSource?.tokenViewDidRefreshWithHeight(lineHeight) + multiselectableView?.tokenViewHeightConstraint?.constant = lineHeight return CGSizeZero } @@ -147,7 +123,7 @@ public class BSTokenView: UIControl { totalRect = CGRectUnion(itemRect, totalRect) } - dataSource?.tokenViewDidRefreshWithHeight(max(totalRect.size.height, lineHeight)) + multiselectableView?.tokenViewHeightConstraint?.constant = max(totalRect.size.height, lineHeight) return totalRect.size } diff --git a/Example/BSSelectableView.xcworkspace/xcuserdata/kuna.xcuserdatad/UserInterfaceState.xcuserstate b/Example/BSSelectableView.xcworkspace/xcuserdata/kuna.xcuserdatad/UserInterfaceState.xcuserstate index ea8ec61a7bf904315ef02b25c025bf464c67ff72..44b4c78362edd1da5b598c2631568db32f00d7cd 100644 GIT binary patch delta 22092 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 delta 22541 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 d#p)G%R~%Y#0(>X|1Mu7 - + diff --git a/Example/BSSelectableView/Base.lproj/Main.storyboard b/Example/BSSelectableView/Base.lproj/Main.storyboard index 66356ac..85d35db 100644 --- a/Example/BSSelectableView/Base.lproj/Main.storyboard +++ b/Example/BSSelectableView/Base.lproj/Main.storyboard @@ -1,5 +1,5 @@ - + @@ -63,7 +63,7 @@ - + @@ -124,7 +124,13 @@ - + + + + + + + @@ -184,7 +190,7 @@ - + diff --git a/Example/BSSelectableView/ViewController.swift b/Example/BSSelectableView/ViewController.swift index aa91c25..77e1bd5 100644 --- a/Example/BSSelectableView/ViewController.swift +++ b/Example/BSSelectableView/ViewController.swift @@ -36,19 +36,19 @@ class ViewController: UIViewController, BSSelectableViewDelegate { BSSelectableView.titleColorForSelectedOption = UIColor.redColor() BSSelectableView.leftPaddingForOption = 10 + selectableView.options = options selectableView.delegate = self + multiselectableView.delegate = self + multiselectableView.options = options + multiscrollselectableView.options = options - multiscrollselectableView.delegate = self + multiscrollselectableView.delegate = self // selectableView.selectedOption = BSSelectableOption(index: 0, title: "First title", identifier: "a") multiselectableView.selectedOptions = [BSSelectableOption(index: 0, title: "First title", identifier: "a"), BSSelectableOption(index: 1, title: "aaa", identifier: "b")] } - func selectableOptionsForSelectableViewWithIdentifier(identifier: String) -> [BSSelectableOption] { - return options - } - func multiSelectableView(view: BSMultiSelectableView, tokenViewForOption option: BSSelectableOption, atIndex index: Int) -> UIView { let tokenView = NSBundle.mainBundle().loadNibNamed("BSSelectedTokenFieldView", owner: self, options: nil).first as! BSSelectedTokenFieldView diff --git a/Example/Pods/Local Podspecs/BSSelectableView.podspec.json b/Example/Pods/Local Podspecs/BSSelectableView.podspec.json new file mode 100644 index 0000000..176a22d --- /dev/null +++ b/Example/Pods/Local Podspecs/BSSelectableView.podspec.json @@ -0,0 +1,22 @@ +{ + "name": "BSSelectableView", + "version": "1.0.2", + "summary": "Easily manage your token along with your single or multiply select view.", + "description": "Looking for simple Swift library to manage multiply or single selection? This one is for you:)", + "homepage": "https://github.com/kunass2/BSSelectableView", + "license": { + "type": "MIT", + "file": "LICENSE" + }, + "authors": { + "Bartłomiej Semańczyk": "bartekss2@icloud.com" + }, + "source": { + "git": "https://github.com/kunass2/BSSelectableView.git", + "tag": "1.0.2" + }, + "platforms": { + "ios": "8.0" + }, + "source_files": "BSSelectableView/Classes/**/*" +} diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock new file mode 100644 index 0000000..35e5e89 --- /dev/null +++ b/Example/Pods/Manifest.lock @@ -0,0 +1,16 @@ +PODS: + - BSSelectableView (1.0.2) + +DEPENDENCIES: + - BSSelectableView (from `../`) + +EXTERNAL SOURCES: + BSSelectableView: + :path: "../" + +SPEC CHECKSUMS: + BSSelectableView: 58db0848eb7b7705d416cc7d1301b7d1bd1801e6 + +PODFILE CHECKSUM: 6dcbfa8252dd7d102d8fd6775bd61a8ddfff7eb6 + +COCOAPODS: 1.0.1 diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj new file mode 100644 index 0000000..3138790 --- /dev/null +++ b/Example/Pods/Pods.xcodeproj/project.pbxproj @@ -0,0 +1,711 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 1E9E0C0D345E76442D142F50A47E2D47 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */; }; + 4B6B0D639D871492E31B9C8445688D40 /* Pods-BSSelectableView_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 62F2F1B6B46684D8BAB56B6EF3962677 /* Pods-BSSelectableView_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 578DF6E506381895266EA7617034FFC6 /* BSSelectableTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A37CF0976A28D8910A1F7618D671271E /* BSSelectableTableViewCell.swift */; }; + 644695385078FB36BC288A5ADD12B45E /* BSMultiSelectableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36BDDB21B5741EA799D04645D4D56039 /* BSMultiSelectableView.swift */; }; + 724B76212DFE6ECFE20A0BF43AF6E4C5 /* Pods-BSSelectableView_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C8039D1AE0D3BBFDCE5E3E835007D810 /* Pods-BSSelectableView_Tests-dummy.m */; }; + 7C9D3FCEC9E3DAB027AD10C6B28E3ED4 /* Pods-BSSelectableView_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5EF3E1517E1936FD83B92887B706912E /* Pods-BSSelectableView_Example-dummy.m */; }; + 7F85FA332833CE4D2A3A5E829BEAFC44 /* BSTokenView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7A673919A39FB1E9AD72301B71719BE1 /* BSTokenView.swift */; }; + 8DF748587F2D9F0C75E2BDD15288507D /* Pods-BSSelectableView_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = F9755F3122B234EFC47251CF4ED4C709 /* Pods-BSSelectableView_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 93585C7D87A64B1C32B9FF2A82314015 /* BSSelectableView-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 74C87044F7792D949664E854B9CEB967 /* BSSelectableView-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 96A4FD8E6E6FE82F7D157BD40E2C7CC7 /* BSSelectableView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B9F81F63DB99BD57F4FB9A7BCC587418 /* BSSelectableView-dummy.m */; }; + A13FC3AE14107276756B2425BC438B73 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */; }; + A523EE04AF36B5A5B87418EA2310524B /* BSSingleSelectableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 319B0E6F92CDAD259ED1FC4BA2D191E9 /* BSSingleSelectableView.swift */; }; + ABA06173D74DE867265999EEBCEBFD7B /* BSSelectableTableViewCell.xib in Sources */ = {isa = PBXBuildFile; fileRef = 45FD4F096284AE5AF5C1627E6454C0E9 /* BSSelectableTableViewCell.xib */; }; + BC2E69B91D2BD1630034E485 /* BSScrollTokenView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC2E69B81D2BD1630034E485 /* BSScrollTokenView.swift */; }; + BE62CE1F9EB3A1558A19D6AAFC3E3A0B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */; }; + C3ED4FF137886BBE32C9A7D89D95140B /* BSSelectableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7ED60F0D97F35587FEF29113D752872F /* BSSelectableView.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 799D6B6BF8362BCB0AE9D9DA50397A0A /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = 32E40E6CDBF475EBE9E372CC5386FE68; + remoteInfo = BSSelectableView; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 0939AEF4756D16C2D560B1FE0E21C080 /* Pods-BSSelectableView_Tests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-BSSelectableView_Tests-acknowledgements.markdown"; sourceTree = ""; }; + 094360D13DCAA8C207F4C057DF9A8FA6 /* Pods-BSSelectableView_Tests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-BSSelectableView_Tests-resources.sh"; sourceTree = ""; }; + 0EA8E87775AC07DF6A7A66217228571D /* Pods-BSSelectableView_Example-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-BSSelectableView_Example-acknowledgements.markdown"; sourceTree = ""; }; + 22E62B5E9900E1111423C1C759084128 /* Pods-BSSelectableView_Example-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-BSSelectableView_Example-resources.sh"; sourceTree = ""; }; + 2582D471090A951482A18140CC33CC1E /* BSSelectableView.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = BSSelectableView.modulemap; sourceTree = ""; }; + 293048C1F00E1DFC42FBE34FD2B9A73E /* BSSelectableView.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = BSSelectableView.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 30FC7CA707230A62B06C89F74E07F92D /* Pods-BSSelectableView_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-BSSelectableView_Tests.release.xcconfig"; sourceTree = ""; }; + 319B0E6F92CDAD259ED1FC4BA2D191E9 /* BSSingleSelectableView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BSSingleSelectableView.swift; sourceTree = ""; }; + 36BDDB21B5741EA799D04645D4D56039 /* BSMultiSelectableView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BSMultiSelectableView.swift; sourceTree = ""; }; + 39F3D16A9D1AA0C7CB0737E0F441D32B /* Pods-BSSelectableView_Example-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-BSSelectableView_Example-acknowledgements.plist"; sourceTree = ""; }; + 431B4C445A78C2F1844982C7A05546F7 /* Pods-BSSelectableView_Tests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-BSSelectableView_Tests-acknowledgements.plist"; sourceTree = ""; }; + 45FD4F096284AE5AF5C1627E6454C0E9 /* BSSelectableTableViewCell.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; path = BSSelectableTableViewCell.xib; sourceTree = ""; }; + 583BCE5C78815836E8508D2CC7A0E985 /* Pods-BSSelectableView_Tests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-BSSelectableView_Tests.modulemap"; sourceTree = ""; }; + 5B25ED49F346EA219923270D0EF34944 /* Pods_BSSelectableView_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_BSSelectableView_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5EF3E1517E1936FD83B92887B706912E /* Pods-BSSelectableView_Example-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-BSSelectableView_Example-dummy.m"; sourceTree = ""; }; + 62F2F1B6B46684D8BAB56B6EF3962677 /* Pods-BSSelectableView_Example-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-BSSelectableView_Example-umbrella.h"; sourceTree = ""; }; + 6B45A03407FB92B644C06EAEEBF5C659 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 74C87044F7792D949664E854B9CEB967 /* BSSelectableView-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BSSelectableView-umbrella.h"; sourceTree = ""; }; + 7A673919A39FB1E9AD72301B71719BE1 /* BSTokenView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BSTokenView.swift; sourceTree = ""; }; + 7C267D8D2840594895A23E6DF09EFB54 /* Pods-BSSelectableView_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-BSSelectableView_Example.debug.xcconfig"; sourceTree = ""; }; + 7ED60F0D97F35587FEF29113D752872F /* BSSelectableView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BSSelectableView.swift; sourceTree = ""; }; + 8D75BA576FBA56E69125E781573A910E /* BSSelectableView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "BSSelectableView-prefix.pch"; sourceTree = ""; }; + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + A37CF0976A28D8910A1F7618D671271E /* BSSelectableTableViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BSSelectableTableViewCell.swift; sourceTree = ""; }; + AAB6A7BC23457D91C11E9881232F20E6 /* Pods-BSSelectableView_Example.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-BSSelectableView_Example.modulemap"; sourceTree = ""; }; + AEF03B371B3999E92E5BD81ABE31897F /* Pods_BSSelectableView_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_BSSelectableView_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + B35AAD452178FC98DAACBF53E693F065 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + B441AE3A15568D97136C8244CE16ED6C /* Pods-BSSelectableView_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-BSSelectableView_Tests.debug.xcconfig"; sourceTree = ""; }; + B9F81F63DB99BD57F4FB9A7BCC587418 /* BSSelectableView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "BSSelectableView-dummy.m"; sourceTree = ""; }; + BC2E69B81D2BD1630034E485 /* BSScrollTokenView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BSScrollTokenView.swift; sourceTree = ""; }; + C8039D1AE0D3BBFDCE5E3E835007D810 /* Pods-BSSelectableView_Tests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-BSSelectableView_Tests-dummy.m"; sourceTree = ""; }; + CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + D18458EB140F19B4E70148B6B4ACE09E /* Pods-BSSelectableView_Tests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-BSSelectableView_Tests-frameworks.sh"; sourceTree = ""; }; + D4BA258AEC587982469F958361F1DBDC /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + E00FB1D18005FAF3BA0AAB4553A4EFC0 /* Pods-BSSelectableView_Example-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-BSSelectableView_Example-frameworks.sh"; sourceTree = ""; }; + EBB03C2147205B4D603F0209785C3314 /* Pods-BSSelectableView_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-BSSelectableView_Example.release.xcconfig"; sourceTree = ""; }; + F9755F3122B234EFC47251CF4ED4C709 /* Pods-BSSelectableView_Tests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-BSSelectableView_Tests-umbrella.h"; sourceTree = ""; }; + FC36B1C0070747116B30653675B2BA02 /* BSSelectableView.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = BSSelectableView.xcconfig; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 0206A853A42B205B69DC4F3989F1860C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + BE62CE1F9EB3A1558A19D6AAFC3E3A0B /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 66302F46309F257A126E5794823F067D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + A13FC3AE14107276756B2425BC438B73 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E1FB7C60E92156C9C4345753BD024905 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 1E9E0C0D345E76442D142F50A47E2D47 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 0AAB08E22AE312E310FDB5A2CEE52909 /* BSSelectableView */ = { + isa = PBXGroup; + children = ( + 3D9726A9AEEE27F367C246762C5E90F2 /* Classes */, + ); + path = BSSelectableView; + sourceTree = ""; + }; + 283A2BADD661080C31BB5FFC2999B35E /* Development Pods */ = { + isa = PBXGroup; + children = ( + C0842C53447E57AC4903A0D6BC9E01BF /* BSSelectableView */, + ); + name = "Development Pods"; + sourceTree = ""; + }; + 2CFB36AF1DCD8E2CDC82DFD64F5B2C49 /* Pods-BSSelectableView_Tests */ = { + isa = PBXGroup; + children = ( + 6B45A03407FB92B644C06EAEEBF5C659 /* Info.plist */, + 583BCE5C78815836E8508D2CC7A0E985 /* Pods-BSSelectableView_Tests.modulemap */, + 0939AEF4756D16C2D560B1FE0E21C080 /* Pods-BSSelectableView_Tests-acknowledgements.markdown */, + 431B4C445A78C2F1844982C7A05546F7 /* Pods-BSSelectableView_Tests-acknowledgements.plist */, + C8039D1AE0D3BBFDCE5E3E835007D810 /* Pods-BSSelectableView_Tests-dummy.m */, + D18458EB140F19B4E70148B6B4ACE09E /* Pods-BSSelectableView_Tests-frameworks.sh */, + 094360D13DCAA8C207F4C057DF9A8FA6 /* Pods-BSSelectableView_Tests-resources.sh */, + F9755F3122B234EFC47251CF4ED4C709 /* Pods-BSSelectableView_Tests-umbrella.h */, + B441AE3A15568D97136C8244CE16ED6C /* Pods-BSSelectableView_Tests.debug.xcconfig */, + 30FC7CA707230A62B06C89F74E07F92D /* Pods-BSSelectableView_Tests.release.xcconfig */, + ); + name = "Pods-BSSelectableView_Tests"; + path = "Target Support Files/Pods-BSSelectableView_Tests"; + sourceTree = ""; + }; + 3D9726A9AEEE27F367C246762C5E90F2 /* Classes */ = { + isa = PBXGroup; + children = ( + 7ED60F0D97F35587FEF29113D752872F /* BSSelectableView.swift */, + 36BDDB21B5741EA799D04645D4D56039 /* BSMultiSelectableView.swift */, + 319B0E6F92CDAD259ED1FC4BA2D191E9 /* BSSingleSelectableView.swift */, + A37CF0976A28D8910A1F7618D671271E /* BSSelectableTableViewCell.swift */, + 45FD4F096284AE5AF5C1627E6454C0E9 /* BSSelectableTableViewCell.xib */, + 7A673919A39FB1E9AD72301B71719BE1 /* BSTokenView.swift */, + BC2E69B81D2BD1630034E485 /* BSScrollTokenView.swift */, + ); + path = Classes; + sourceTree = ""; + }; + 3DCAB2B7CDE207B3958B6CB957FCC758 /* iOS */ = { + isa = PBXGroup; + children = ( + CEC22C73C1608DFA5D5D78BDCB218219 /* Foundation.framework */, + ); + name = iOS; + sourceTree = ""; + }; + 46C9EDFC356A7668077442468AB068C6 /* Targets Support Files */ = { + isa = PBXGroup; + children = ( + C02378C38BD6BFED754757E5369E003B /* Pods-BSSelectableView_Example */, + 2CFB36AF1DCD8E2CDC82DFD64F5B2C49 /* Pods-BSSelectableView_Tests */, + ); + name = "Targets Support Files"; + sourceTree = ""; + }; + 548936786E1BA18FD6652302FAB10C56 /* Support Files */ = { + isa = PBXGroup; + children = ( + 2582D471090A951482A18140CC33CC1E /* BSSelectableView.modulemap */, + FC36B1C0070747116B30653675B2BA02 /* BSSelectableView.xcconfig */, + B9F81F63DB99BD57F4FB9A7BCC587418 /* BSSelectableView-dummy.m */, + 8D75BA576FBA56E69125E781573A910E /* BSSelectableView-prefix.pch */, + 74C87044F7792D949664E854B9CEB967 /* BSSelectableView-umbrella.h */, + D4BA258AEC587982469F958361F1DBDC /* Info.plist */, + ); + name = "Support Files"; + path = "Example/Pods/Target Support Files/BSSelectableView"; + sourceTree = ""; + }; + 7DB346D0F39D3F0E887471402A8071AB = { + isa = PBXGroup; + children = ( + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, + 283A2BADD661080C31BB5FFC2999B35E /* Development Pods */, + BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */, + C4ED820B52006EA7B26907DD95D51ED6 /* Products */, + 46C9EDFC356A7668077442468AB068C6 /* Targets Support Files */, + ); + sourceTree = ""; + }; + BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = { + isa = PBXGroup; + children = ( + 3DCAB2B7CDE207B3958B6CB957FCC758 /* iOS */, + ); + name = Frameworks; + sourceTree = ""; + }; + C02378C38BD6BFED754757E5369E003B /* Pods-BSSelectableView_Example */ = { + isa = PBXGroup; + children = ( + B35AAD452178FC98DAACBF53E693F065 /* Info.plist */, + AAB6A7BC23457D91C11E9881232F20E6 /* Pods-BSSelectableView_Example.modulemap */, + 0EA8E87775AC07DF6A7A66217228571D /* Pods-BSSelectableView_Example-acknowledgements.markdown */, + 39F3D16A9D1AA0C7CB0737E0F441D32B /* Pods-BSSelectableView_Example-acknowledgements.plist */, + 5EF3E1517E1936FD83B92887B706912E /* Pods-BSSelectableView_Example-dummy.m */, + E00FB1D18005FAF3BA0AAB4553A4EFC0 /* Pods-BSSelectableView_Example-frameworks.sh */, + 22E62B5E9900E1111423C1C759084128 /* Pods-BSSelectableView_Example-resources.sh */, + 62F2F1B6B46684D8BAB56B6EF3962677 /* Pods-BSSelectableView_Example-umbrella.h */, + 7C267D8D2840594895A23E6DF09EFB54 /* Pods-BSSelectableView_Example.debug.xcconfig */, + EBB03C2147205B4D603F0209785C3314 /* Pods-BSSelectableView_Example.release.xcconfig */, + ); + name = "Pods-BSSelectableView_Example"; + path = "Target Support Files/Pods-BSSelectableView_Example"; + sourceTree = ""; + }; + C0842C53447E57AC4903A0D6BC9E01BF /* BSSelectableView */ = { + isa = PBXGroup; + children = ( + 0AAB08E22AE312E310FDB5A2CEE52909 /* BSSelectableView */, + 548936786E1BA18FD6652302FAB10C56 /* Support Files */, + ); + name = BSSelectableView; + path = ../..; + sourceTree = ""; + }; + C4ED820B52006EA7B26907DD95D51ED6 /* Products */ = { + isa = PBXGroup; + children = ( + 293048C1F00E1DFC42FBE34FD2B9A73E /* BSSelectableView.framework */, + 5B25ED49F346EA219923270D0EF34944 /* Pods_BSSelectableView_Example.framework */, + AEF03B371B3999E92E5BD81ABE31897F /* Pods_BSSelectableView_Tests.framework */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 0C8085DDAA0B45A1C38F646FDA5BAD25 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 4B6B0D639D871492E31B9C8445688D40 /* Pods-BSSelectableView_Example-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 47B62A8C8D39119078E46D670D7DF891 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 8DF748587F2D9F0C75E2BDD15288507D /* Pods-BSSelectableView_Tests-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 7397C42B6FC65F8EBF6B327DCDCBCF30 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 93585C7D87A64B1C32B9FF2A82314015 /* BSSelectableView-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 32E40E6CDBF475EBE9E372CC5386FE68 /* BSSelectableView */ = { + isa = PBXNativeTarget; + buildConfigurationList = 4CB970213F7B1DF4A3504EA0D9DF2335 /* Build configuration list for PBXNativeTarget "BSSelectableView" */; + buildPhases = ( + 0D702956CF55A0BD10220FFB30B0D9FC /* Sources */, + 0206A853A42B205B69DC4F3989F1860C /* Frameworks */, + 7397C42B6FC65F8EBF6B327DCDCBCF30 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = BSSelectableView; + productName = BSSelectableView; + productReference = 293048C1F00E1DFC42FBE34FD2B9A73E /* BSSelectableView.framework */; + productType = "com.apple.product-type.framework"; + }; + C072295B891057D4BCA46F1C27562FB4 /* Pods-BSSelectableView_Example */ = { + isa = PBXNativeTarget; + buildConfigurationList = 5BEDD4662DAA36261D6B3FAB95164658 /* Build configuration list for PBXNativeTarget "Pods-BSSelectableView_Example" */; + buildPhases = ( + 207CD5948303BBC167A3EF1B05F39BFC /* Sources */, + E1FB7C60E92156C9C4345753BD024905 /* Frameworks */, + 0C8085DDAA0B45A1C38F646FDA5BAD25 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + 3C4B8158C8A65DFB11649386CF027155 /* PBXTargetDependency */, + ); + name = "Pods-BSSelectableView_Example"; + productName = "Pods-BSSelectableView_Example"; + productReference = 5B25ED49F346EA219923270D0EF34944 /* Pods_BSSelectableView_Example.framework */; + productType = "com.apple.product-type.framework"; + }; + C2D37095DBF7FA8FE3B2211DA502D42A /* Pods-BSSelectableView_Tests */ = { + isa = PBXNativeTarget; + buildConfigurationList = CFFACC074C4F0FC736D413DE6CEF20B7 /* Build configuration list for PBXNativeTarget "Pods-BSSelectableView_Tests" */; + buildPhases = ( + 28C534FED6A9ADD5A9B0D2481817211A /* Sources */, + 66302F46309F257A126E5794823F067D /* Frameworks */, + 47B62A8C8D39119078E46D670D7DF891 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-BSSelectableView_Tests"; + productName = "Pods-BSSelectableView_Tests"; + productReference = AEF03B371B3999E92E5BD81ABE31897F /* Pods_BSSelectableView_Tests.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0730; + LastUpgradeCheck = 0700; + }; + buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 7DB346D0F39D3F0E887471402A8071AB; + productRefGroup = C4ED820B52006EA7B26907DD95D51ED6 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 32E40E6CDBF475EBE9E372CC5386FE68 /* BSSelectableView */, + C072295B891057D4BCA46F1C27562FB4 /* Pods-BSSelectableView_Example */, + C2D37095DBF7FA8FE3B2211DA502D42A /* Pods-BSSelectableView_Tests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXSourcesBuildPhase section */ + 0D702956CF55A0BD10220FFB30B0D9FC /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 644695385078FB36BC288A5ADD12B45E /* BSMultiSelectableView.swift in Sources */, + 578DF6E506381895266EA7617034FFC6 /* BSSelectableTableViewCell.swift in Sources */, + BC2E69B91D2BD1630034E485 /* BSScrollTokenView.swift in Sources */, + ABA06173D74DE867265999EEBCEBFD7B /* BSSelectableTableViewCell.xib in Sources */, + 96A4FD8E6E6FE82F7D157BD40E2C7CC7 /* BSSelectableView-dummy.m in Sources */, + C3ED4FF137886BBE32C9A7D89D95140B /* BSSelectableView.swift in Sources */, + A523EE04AF36B5A5B87418EA2310524B /* BSSingleSelectableView.swift in Sources */, + 7F85FA332833CE4D2A3A5E829BEAFC44 /* BSTokenView.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 207CD5948303BBC167A3EF1B05F39BFC /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 7C9D3FCEC9E3DAB027AD10C6B28E3ED4 /* Pods-BSSelectableView_Example-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 28C534FED6A9ADD5A9B0D2481817211A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 724B76212DFE6ECFE20A0BF43AF6E4C5 /* Pods-BSSelectableView_Tests-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 3C4B8158C8A65DFB11649386CF027155 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = BSSelectableView; + target = 32E40E6CDBF475EBE9E372CC5386FE68 /* BSSelectableView */; + targetProxy = 799D6B6BF8362BCB0AE9D9DA50397A0A /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 0ACDCBCB0B6796575F46FFA2F5410C6B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_RELEASE=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.3; + STRIP_INSTALLED_PRODUCT = NO; + SYMROOT = "${SRCROOT}/../build"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 1156657F69062F48BC5DB4F7B23D2BBE /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = FC36B1C0070747116B30653675B2BA02 /* BSSelectableView.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "Target Support Files/BSSelectableView/BSSelectableView-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/BSSelectableView/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/BSSelectableView/BSSelectableView.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = BSSelectableView; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 2C9DB8A23CF94D4AE95949D533917767 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7C267D8D2840594895A23E6DF09EFB54 /* Pods-BSSelectableView_Example.debug.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Target Support Files/Pods-BSSelectableView_Example/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.3; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = Pods_BSSelectableView_Example; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 51848CBA68F508FB267334AF9E865D5F /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B441AE3A15568D97136C8244CE16ED6C /* Pods-BSSelectableView_Tests.debug.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Target Support Files/Pods-BSSelectableView_Tests/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.3; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = Pods_BSSelectableView_Tests; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 7793ACB5268CABC23A4BB9C032792C92 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = EBB03C2147205B4D603F0209785C3314 /* Pods-BSSelectableView_Example.release.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Target Support Files/Pods-BSSelectableView_Example/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.3; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = Pods_BSSelectableView_Example; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 8E027BE9B743F5BDD666870DE94486C2 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = FC36B1C0070747116B30653675B2BA02 /* BSSelectableView.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "Target Support Files/BSSelectableView/BSSelectableView-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/BSSelectableView/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/BSSelectableView/BSSelectableView.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_NAME = BSSelectableView; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + D3E3D092A3FF7311A98E44BBA36FFD12 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_DEBUG=1", + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.3; + ONLY_ACTIVE_ARCH = YES; + STRIP_INSTALLED_PRODUCT = NO; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Debug; + }; + F7D372F311CB54A19409AF958451D5BF /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 30FC7CA707230A62B06C89F74E07F92D /* Pods-BSSelectableView_Tests.release.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Target Support Files/Pods-BSSelectableView_Tests/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.3; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = Pods_BSSelectableView_Tests; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D3E3D092A3FF7311A98E44BBA36FFD12 /* Debug */, + 0ACDCBCB0B6796575F46FFA2F5410C6B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 4CB970213F7B1DF4A3504EA0D9DF2335 /* Build configuration list for PBXNativeTarget "BSSelectableView" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 8E027BE9B743F5BDD666870DE94486C2 /* Debug */, + 1156657F69062F48BC5DB4F7B23D2BBE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 5BEDD4662DAA36261D6B3FAB95164658 /* Build configuration list for PBXNativeTarget "Pods-BSSelectableView_Example" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2C9DB8A23CF94D4AE95949D533917767 /* Debug */, + 7793ACB5268CABC23A4BB9C032792C92 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + CFFACC074C4F0FC736D413DE6CEF20B7 /* Build configuration list for PBXNativeTarget "Pods-BSSelectableView_Tests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 51848CBA68F508FB267334AF9E865D5F /* Debug */, + F7D372F311CB54A19409AF958451D5BF /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */; +} diff --git a/Example/Pods/Pods.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Example/Pods/Pods.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/Example/Pods/Pods.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Example/Pods/Pods.xcodeproj/project.xcworkspace/xcuserdata/kuna.xcuserdatad/UserInterfaceState.xcuserstate b/Example/Pods/Pods.xcodeproj/project.xcworkspace/xcuserdata/kuna.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..dc22928d153ae8ac125d57b8d26902ddd695a500 GIT binary patch literal 5662 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 + + + + BuildLocationStyle + UseTargetSettings + + diff --git a/Example/Pods/Pods.xcodeproj/xcuserdata/kuna.xcuserdatad/xcschemes/BSSelectableView.xcscheme b/Example/Pods/Pods.xcodeproj/xcuserdata/kuna.xcuserdatad/xcschemes/BSSelectableView.xcscheme new file mode 100644 index 0000000..fbc8eb4 --- /dev/null +++ b/Example/Pods/Pods.xcodeproj/xcuserdata/kuna.xcuserdatad/xcschemes/BSSelectableView.xcscheme @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Pods/Pods.xcodeproj/xcuserdata/kuna.xcuserdatad/xcschemes/Pods-BSSelectableView_Example.xcscheme b/Example/Pods/Pods.xcodeproj/xcuserdata/kuna.xcuserdatad/xcschemes/Pods-BSSelectableView_Example.xcscheme new file mode 100644 index 0000000..fb34218 --- /dev/null +++ b/Example/Pods/Pods.xcodeproj/xcuserdata/kuna.xcuserdatad/xcschemes/Pods-BSSelectableView_Example.xcscheme @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Pods/Pods.xcodeproj/xcuserdata/kuna.xcuserdatad/xcschemes/Pods-BSSelectableView_Tests.xcscheme b/Example/Pods/Pods.xcodeproj/xcuserdata/kuna.xcuserdatad/xcschemes/Pods-BSSelectableView_Tests.xcscheme new file mode 100644 index 0000000..aab2d49 --- /dev/null +++ b/Example/Pods/Pods.xcodeproj/xcuserdata/kuna.xcuserdatad/xcschemes/Pods-BSSelectableView_Tests.xcscheme @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Pods/Pods.xcodeproj/xcuserdata/kuna.xcuserdatad/xcschemes/xcschememanagement.plist b/Example/Pods/Pods.xcodeproj/xcuserdata/kuna.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..5099592 --- /dev/null +++ b/Example/Pods/Pods.xcodeproj/xcuserdata/kuna.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,42 @@ + + + + + SchemeUserState + + BSSelectableView.xcscheme + + isShown + + + Pods-BSSelectableView_Example.xcscheme + + isShown + + + Pods-BSSelectableView_Tests.xcscheme + + isShown + + + + SuppressBuildableAutocreation + + 32E40E6CDBF475EBE9E372CC5386FE68 + + primary + + + C072295B891057D4BCA46F1C27562FB4 + + primary + + + C2D37095DBF7FA8FE3B2211DA502D42A + + primary + + + + + diff --git a/Example/Pods/Target Support Files/BSSelectableView/BSSelectableView-dummy.m b/Example/Pods/Target Support Files/BSSelectableView/BSSelectableView-dummy.m new file mode 100644 index 0000000..44177ae --- /dev/null +++ b/Example/Pods/Target Support Files/BSSelectableView/BSSelectableView-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_BSSelectableView : NSObject +@end +@implementation PodsDummy_BSSelectableView +@end diff --git a/Example/Pods/Target Support Files/BSSelectableView/BSSelectableView-prefix.pch b/Example/Pods/Target Support Files/BSSelectableView/BSSelectableView-prefix.pch new file mode 100644 index 0000000..aa992a4 --- /dev/null +++ b/Example/Pods/Target Support Files/BSSelectableView/BSSelectableView-prefix.pch @@ -0,0 +1,4 @@ +#ifdef __OBJC__ +#import +#endif + diff --git a/Example/Pods/Target Support Files/BSSelectableView/BSSelectableView-umbrella.h b/Example/Pods/Target Support Files/BSSelectableView/BSSelectableView-umbrella.h new file mode 100644 index 0000000..9d9a2a9 --- /dev/null +++ b/Example/Pods/Target Support Files/BSSelectableView/BSSelectableView-umbrella.h @@ -0,0 +1,6 @@ +#import + + +FOUNDATION_EXPORT double BSSelectableViewVersionNumber; +FOUNDATION_EXPORT const unsigned char BSSelectableViewVersionString[]; + diff --git a/Example/Pods/Target Support Files/BSSelectableView/BSSelectableView.modulemap b/Example/Pods/Target Support Files/BSSelectableView/BSSelectableView.modulemap new file mode 100644 index 0000000..846b634 --- /dev/null +++ b/Example/Pods/Target Support Files/BSSelectableView/BSSelectableView.modulemap @@ -0,0 +1,6 @@ +framework module BSSelectableView { + umbrella header "BSSelectableView-umbrella.h" + + export * + module * { export * } +} diff --git a/Example/Pods/Target Support Files/BSSelectableView/BSSelectableView.xcconfig b/Example/Pods/Target Support Files/BSSelectableView/BSSelectableView.xcconfig new file mode 100644 index 0000000..4bc32c6 --- /dev/null +++ b/Example/Pods/Target Support Files/BSSelectableView/BSSelectableView.xcconfig @@ -0,0 +1,9 @@ +CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/BSSelectableView +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" +OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" +PODS_BUILD_DIR = $BUILD_DIR +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT} +PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} +SKIP_INSTALL = YES diff --git a/Example/Pods/Target Support Files/BSSelectableView/Info.plist b/Example/Pods/Target Support Files/BSSelectableView/Info.plist new file mode 100644 index 0000000..b35ab35 --- /dev/null +++ b/Example/Pods/Target Support Files/BSSelectableView/Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.2 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Info.plist b/Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Info.plist new file mode 100644 index 0000000..2243fe6 --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example-acknowledgements.markdown b/Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example-acknowledgements.markdown new file mode 100644 index 0000000..353d5d9 --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example-acknowledgements.markdown @@ -0,0 +1,26 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## BSSelectableView + +Copyright (c) 2016 Bartłomiej Semańczyk + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +Generated by CocoaPods - https://cocoapods.org diff --git a/Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example-acknowledgements.plist b/Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example-acknowledgements.plist new file mode 100644 index 0000000..1253154 --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example-acknowledgements.plist @@ -0,0 +1,56 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + Copyright (c) 2016 Bartłomiej Semańczyk <bartlomiej.semanczyk@railwaymen.org> + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + Title + BSSelectableView + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example-dummy.m b/Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example-dummy.m new file mode 100644 index 0000000..8cf604b --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_BSSelectableView_Example : NSObject +@end +@implementation PodsDummy_Pods_BSSelectableView_Example +@end diff --git a/Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example-frameworks.sh b/Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example-frameworks.sh new file mode 100755 index 0000000..0e7f5e1 --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example-frameworks.sh @@ -0,0 +1,91 @@ +#!/bin/sh +set -e + +echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + +SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" + +install_framework() +{ + if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then + local source="${BUILT_PRODUCTS_DIR}/$1" + elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then + local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" + elif [ -r "$1" ]; then + local source="$1" + fi + + local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + + if [ -L "${source}" ]; then + echo "Symlinked..." + source="$(readlink "${source}")" + fi + + # use filter instead of exclude so missing patterns dont' throw errors + echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + + local basename + basename="$(basename -s .framework "$1")" + binary="${destination}/${basename}.framework/${basename}" + if ! [ -r "$binary" ]; then + binary="${destination}/${basename}" + fi + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then + strip_invalid_archs "$binary" + fi + + # Resign the code if required by the build settings to avoid unstable apps + code_sign_if_enabled "${destination}/$(basename "$1")" + + # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. + if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then + local swift_runtime_libs + swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) + for lib in $swift_runtime_libs; do + echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" + rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" + code_sign_if_enabled "${destination}/${lib}" + done + fi +} + +# Signs a framework with the provided identity +code_sign_if_enabled() { + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + # Use the current code_sign_identitiy + echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" + echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements \"$1\"" + /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements "$1" + fi +} + +# Strip invalid architectures +strip_invalid_archs() { + binary="$1" + # Get architectures for current file + archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" + stripped="" + for arch in $archs; do + if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then + # Strip non-valid architectures in-place + lipo -remove "$arch" -output "$binary" "$binary" || exit 1 + stripped="$stripped $arch" + fi + done + if [[ "$stripped" ]]; then + echo "Stripped $binary of architectures:$stripped" + fi +} + + +if [[ "$CONFIGURATION" == "Debug" ]]; then + install_framework "$BUILT_PRODUCTS_DIR/BSSelectableView/BSSelectableView.framework" +fi +if [[ "$CONFIGURATION" == "Release" ]]; then + install_framework "$BUILT_PRODUCTS_DIR/BSSelectableView/BSSelectableView.framework" +fi diff --git a/Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example-resources.sh b/Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example-resources.sh new file mode 100755 index 0000000..0a15615 --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example-resources.sh @@ -0,0 +1,102 @@ +#!/bin/sh +set -e + +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + +RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt +> "$RESOURCES_TO_COPY" + +XCASSET_FILES=() + +case "${TARGETED_DEVICE_FAMILY}" in + 1,2) + TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" + ;; + 1) + TARGET_DEVICE_ARGS="--target-device iphone" + ;; + 2) + TARGET_DEVICE_ARGS="--target-device ipad" + ;; + *) + TARGET_DEVICE_ARGS="--target-device mac" + ;; +esac + +realpath() { + DIRECTORY="$(cd "${1%/*}" && pwd)" + FILENAME="${1##*/}" + echo "$DIRECTORY/$FILENAME" +} + +install_resource() +{ + if [[ "$1" = /* ]] ; then + RESOURCE_PATH="$1" + else + RESOURCE_PATH="${PODS_ROOT}/$1" + fi + if [[ ! -e "$RESOURCE_PATH" ]] ; then + cat << EOM +error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. +EOM + exit 1 + fi + case $RESOURCE_PATH in + *.storyboard) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} + ;; + *.xib) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} + ;; + *.framework) + echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + ;; + *.xcdatamodel) + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" + ;; + *.xcdatamodeld) + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" + ;; + *.xcmappingmodel) + echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" + xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" + ;; + *.xcassets) + ABSOLUTE_XCASSET_FILE=$(realpath "$RESOURCE_PATH") + XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") + ;; + *) + echo "$RESOURCE_PATH" + echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" + ;; + esac +} + +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then + mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +fi +rm -f "$RESOURCES_TO_COPY" + +if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] +then + # Find all other xcassets (this unfortunately includes those of path pods and other targets). + OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) + while read line; do + if [[ $line != "`realpath $PODS_ROOT`*" ]]; then + XCASSET_FILES+=("$line") + fi + done <<<"$OTHER_XCASSETS" + + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +fi diff --git a/Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example-umbrella.h b/Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example-umbrella.h new file mode 100644 index 0000000..54e0f59 --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example-umbrella.h @@ -0,0 +1,6 @@ +#import + + +FOUNDATION_EXPORT double Pods_BSSelectableView_ExampleVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_BSSelectableView_ExampleVersionString[]; + diff --git a/Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example.debug.xcconfig b/Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example.debug.xcconfig new file mode 100644 index 0000000..fb78339 --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example.debug.xcconfig @@ -0,0 +1,10 @@ +EMBEDDED_CONTENT_CONTAINS_SWIFT = YES +FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/BSSelectableView" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/BSSelectableView/BSSelectableView.framework/Headers" +OTHER_LDFLAGS = $(inherited) -framework "BSSelectableView" +OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" +PODS_BUILD_DIR = $BUILD_DIR +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT}/Pods diff --git a/Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example.modulemap b/Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example.modulemap new file mode 100644 index 0000000..60d2d56 --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example.modulemap @@ -0,0 +1,6 @@ +framework module Pods_BSSelectableView_Example { + umbrella header "Pods-BSSelectableView_Example-umbrella.h" + + export * + module * { export * } +} diff --git a/Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example.release.xcconfig b/Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example.release.xcconfig new file mode 100644 index 0000000..fb78339 --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-BSSelectableView_Example/Pods-BSSelectableView_Example.release.xcconfig @@ -0,0 +1,10 @@ +EMBEDDED_CONTENT_CONTAINS_SWIFT = YES +FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/BSSelectableView" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/BSSelectableView/BSSelectableView.framework/Headers" +OTHER_LDFLAGS = $(inherited) -framework "BSSelectableView" +OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" +PODS_BUILD_DIR = $BUILD_DIR +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT}/Pods diff --git a/Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Info.plist b/Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Info.plist new file mode 100644 index 0000000..2243fe6 --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests-acknowledgements.markdown b/Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests-acknowledgements.markdown new file mode 100644 index 0000000..102af75 --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests-acknowledgements.markdown @@ -0,0 +1,3 @@ +# Acknowledgements +This application makes use of the following third party libraries: +Generated by CocoaPods - https://cocoapods.org diff --git a/Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests-acknowledgements.plist b/Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests-acknowledgements.plist new file mode 100644 index 0000000..7acbad1 --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests-acknowledgements.plist @@ -0,0 +1,29 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests-dummy.m b/Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests-dummy.m new file mode 100644 index 0000000..8d4dcbd --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_BSSelectableView_Tests : NSObject +@end +@implementation PodsDummy_Pods_BSSelectableView_Tests +@end diff --git a/Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests-frameworks.sh b/Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests-frameworks.sh new file mode 100755 index 0000000..893c16a --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests-frameworks.sh @@ -0,0 +1,84 @@ +#!/bin/sh +set -e + +echo "mkdir -p ${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" +mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + +SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" + +install_framework() +{ + if [ -r "${BUILT_PRODUCTS_DIR}/$1" ]; then + local source="${BUILT_PRODUCTS_DIR}/$1" + elif [ -r "${BUILT_PRODUCTS_DIR}/$(basename "$1")" ]; then + local source="${BUILT_PRODUCTS_DIR}/$(basename "$1")" + elif [ -r "$1" ]; then + local source="$1" + fi + + local destination="${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + + if [ -L "${source}" ]; then + echo "Symlinked..." + source="$(readlink "${source}")" + fi + + # use filter instead of exclude so missing patterns dont' throw errors + echo "rsync -av --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" + rsync -av --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" + + local basename + basename="$(basename -s .framework "$1")" + binary="${destination}/${basename}.framework/${basename}" + if ! [ -r "$binary" ]; then + binary="${destination}/${basename}" + fi + + # Strip invalid architectures so "fat" simulator / device frameworks work on device + if [[ "$(file "$binary")" == *"dynamically linked shared library"* ]]; then + strip_invalid_archs "$binary" + fi + + # Resign the code if required by the build settings to avoid unstable apps + code_sign_if_enabled "${destination}/$(basename "$1")" + + # Embed linked Swift runtime libraries. No longer necessary as of Xcode 7. + if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then + local swift_runtime_libs + swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u && exit ${PIPESTATUS[0]}) + for lib in $swift_runtime_libs; do + echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\"" + rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}" + code_sign_if_enabled "${destination}/${lib}" + done + fi +} + +# Signs a framework with the provided identity +code_sign_if_enabled() { + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY}" -a "${CODE_SIGNING_REQUIRED}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + # Use the current code_sign_identitiy + echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" + echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements \"$1\"" + /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS} --preserve-metadata=identifier,entitlements "$1" + fi +} + +# Strip invalid architectures +strip_invalid_archs() { + binary="$1" + # Get architectures for current file + archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | rev)" + stripped="" + for arch in $archs; do + if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then + # Strip non-valid architectures in-place + lipo -remove "$arch" -output "$binary" "$binary" || exit 1 + stripped="$stripped $arch" + fi + done + if [[ "$stripped" ]]; then + echo "Stripped $binary of architectures:$stripped" + fi +} + diff --git a/Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests-resources.sh b/Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests-resources.sh new file mode 100755 index 0000000..0a15615 --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests-resources.sh @@ -0,0 +1,102 @@ +#!/bin/sh +set -e + +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + +RESOURCES_TO_COPY=${PODS_ROOT}/resources-to-copy-${TARGETNAME}.txt +> "$RESOURCES_TO_COPY" + +XCASSET_FILES=() + +case "${TARGETED_DEVICE_FAMILY}" in + 1,2) + TARGET_DEVICE_ARGS="--target-device ipad --target-device iphone" + ;; + 1) + TARGET_DEVICE_ARGS="--target-device iphone" + ;; + 2) + TARGET_DEVICE_ARGS="--target-device ipad" + ;; + *) + TARGET_DEVICE_ARGS="--target-device mac" + ;; +esac + +realpath() { + DIRECTORY="$(cd "${1%/*}" && pwd)" + FILENAME="${1##*/}" + echo "$DIRECTORY/$FILENAME" +} + +install_resource() +{ + if [[ "$1" = /* ]] ; then + RESOURCE_PATH="$1" + else + RESOURCE_PATH="${PODS_ROOT}/$1" + fi + if [[ ! -e "$RESOURCE_PATH" ]] ; then + cat << EOM +error: Resource "$RESOURCE_PATH" not found. Run 'pod install' to update the copy resources script. +EOM + exit 1 + fi + case $RESOURCE_PATH in + *.storyboard) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .storyboard`.storyboardc" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} + ;; + *.xib) + echo "ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile ${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib $RESOURCE_PATH --sdk ${SDKROOT} ${TARGET_DEVICE_ARGS}" + ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target ${!DEPLOYMENT_TARGET_SETTING_NAME} --output-format human-readable-text --compile "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename \"$RESOURCE_PATH\" .xib`.nib" "$RESOURCE_PATH" --sdk "${SDKROOT}" ${TARGET_DEVICE_ARGS} + ;; + *.framework) + echo "mkdir -p ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + mkdir -p "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + echo "rsync -av $RESOURCE_PATH ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + rsync -av "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" + ;; + *.xcdatamodel) + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH"`.mom\"" + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodel`.mom" + ;; + *.xcdatamodeld) + echo "xcrun momc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd\"" + xcrun momc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcdatamodeld`.momd" + ;; + *.xcmappingmodel) + echo "xcrun mapc \"$RESOURCE_PATH\" \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm\"" + xcrun mapc "$RESOURCE_PATH" "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/`basename "$RESOURCE_PATH" .xcmappingmodel`.cdm" + ;; + *.xcassets) + ABSOLUTE_XCASSET_FILE=$(realpath "$RESOURCE_PATH") + XCASSET_FILES+=("$ABSOLUTE_XCASSET_FILE") + ;; + *) + echo "$RESOURCE_PATH" + echo "$RESOURCE_PATH" >> "$RESOURCES_TO_COPY" + ;; + esac +} + +mkdir -p "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +if [[ "${ACTION}" == "install" ]] && [[ "${SKIP_INSTALL}" == "NO" ]]; then + mkdir -p "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" + rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${INSTALL_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +fi +rm -f "$RESOURCES_TO_COPY" + +if [[ -n "${WRAPPER_EXTENSION}" ]] && [ "`xcrun --find actool`" ] && [ -n "$XCASSET_FILES" ] +then + # Find all other xcassets (this unfortunately includes those of path pods and other targets). + OTHER_XCASSETS=$(find "$PWD" -iname "*.xcassets" -type d) + while read line; do + if [[ $line != "`realpath $PODS_ROOT`*" ]]; then + XCASSET_FILES+=("$line") + fi + done <<<"$OTHER_XCASSETS" + + printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" +fi diff --git a/Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests-umbrella.h b/Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests-umbrella.h new file mode 100644 index 0000000..33f40dc --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests-umbrella.h @@ -0,0 +1,6 @@ +#import + + +FOUNDATION_EXPORT double Pods_BSSelectableView_TestsVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_BSSelectableView_TestsVersionString[]; + diff --git a/Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests.debug.xcconfig b/Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests.debug.xcconfig new file mode 100644 index 0000000..736c459 --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests.debug.xcconfig @@ -0,0 +1,7 @@ +FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/BSSelectableView" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/BSSelectableView/BSSelectableView.framework/Headers" +PODS_BUILD_DIR = $BUILD_DIR +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT}/Pods diff --git a/Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests.modulemap b/Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests.modulemap new file mode 100644 index 0000000..48fc9cc --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests.modulemap @@ -0,0 +1,6 @@ +framework module Pods_BSSelectableView_Tests { + umbrella header "Pods-BSSelectableView_Tests-umbrella.h" + + export * + module * { export * } +} diff --git a/Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests.release.xcconfig b/Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests.release.xcconfig new file mode 100644 index 0000000..736c459 --- /dev/null +++ b/Example/Pods/Target Support Files/Pods-BSSelectableView_Tests/Pods-BSSelectableView_Tests.release.xcconfig @@ -0,0 +1,7 @@ +FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/BSSelectableView" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +OTHER_CFLAGS = $(inherited) -iquote "$PODS_CONFIGURATION_BUILD_DIR/BSSelectableView/BSSelectableView.framework/Headers" +PODS_BUILD_DIR = $BUILD_DIR +PODS_CONFIGURATION_BUILD_DIR = $PODS_BUILD_DIR/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_ROOT = ${SRCROOT}/Pods diff --git a/README.md b/README.md index a003d71..47aaf03 100644 --- a/README.md +++ b/README.md @@ -67,12 +67,10 @@ multiSelectableView.delegate = self ```Swift @objc public protocol BSSelectableViewDelegate { - optional func selectableOptionsForSelectableViewWithIdentifier(identifier: String) -> [BSSelectableOption] optional func multiSelectableView(view: BSMultiSelectableView, tokenViewForOption option: BSSelectableOption, atIndex index: Int) -> UIView optional func singleSelectableView(view: BSSingleSelectableView, didSelectOption option: BSSelectableOption) optional func multiSelectableView(view: BSMultiSelectableView, didSelectOption option: BSSelectableOption) - optional func lineHeightForTokenInMultiSelectableView() -> CGFloat //default is 30 optional func selectableViewToggledOptionsWithButton(button: UIButton, expanded: Bool) } ``` @@ -81,32 +79,26 @@ multiSelectableView.delegate = self ```Swift @IBInspectable public var identifier: String = "" //to differentiate selectable views +@IBInspectable public var tableViewAccessibilityIdentifier: String = "" @IBInspectable public var maxNumberOfRows: Int = 6 //while selecting rows +@IBInspectable public var placeholder: String = "" @IBInspectable public var cornerRadius: CGFloat = 3 //no words needed ``` #### You may also do some customizing (*the following are default*): ```Swift - BSSelectableView.tintColorForSelectedOption = UIColor.blueColor() - BSSelectableView.titleColorForSelectedOption = UIColor.greenColor() - BSSelectableView.titleColorForOption = UIColor.blackColor() BSSelectableView.fontForOption = UIFont.systemFontOfSize(16) + BSSelectableView.fontForPlaceholderText = UIFont.systemFontOfSize(14) + BSSelectableView.leftPaddingForOption = 20 BSSelectableView.heightForOption = 40 BSSelectableView.leftPaddingForPlaceholderText = 0 - BSSelectableView.fontForPlaceholderText = UIFont.systemFontOfSize(14) - BSSelectableView.textColorForPlaceholderText = UIColor.grayColor() -``` - -#### You may in case you need it, set some custom properties right into **Interface Builder**, the following are default: -```Swift - @IBInspectable public var identifier: String = "" - @IBInspectable public var tableViewAccessibilityIdentifier: String = "" - @IBInspectable public var maxNumberOfRows: Int = 6 - @IBInspectable public var placeholderText: String = "" - @IBInspectable public var cornerRadius: CGFloat = 3 + BSSelectableView.tintColorForSelectedOption = UIColor.blueColor() + BSSelectableView.titleColorForSelectedOption = UIColor.greenColor() + BSSelectableView.titleColorForOption = UIColor.blackColor() + BSSelectableView.textColorForPlaceholderText = UIColor.grayColor() ``` #### If you need you are able to call public instance methods: