From 2ee19bf058047ce3105a4f5d8967fb532161782d Mon Sep 17 00:00:00 2001 From: awoerner Date: Sun, 30 Dec 2018 15:04:39 +0100 Subject: [PATCH 1/3] make selectionColor open --- Sources/FSPagerViewCell.swift | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/Sources/FSPagerViewCell.swift b/Sources/FSPagerViewCell.swift index 286eb38..61032b8 100644 --- a/Sources/FSPagerViewCell.swift +++ b/Sources/FSPagerViewCell.swift @@ -44,11 +44,22 @@ open class FSPagerViewCell: UICollectionViewCell { return imageView } + /// Returns the selectionColor which is applied to selectedForegroundView. Default is UIColor(white: 0.2, alpha: 0.2). + @objc + open var selectionColor: UIColor { + set { + _selectionColor = newValue + } + get { + return _selectionColor ?? UIColor(white: 0.2, alpha: 0.2) + } + } + fileprivate weak var _textLabel: UILabel? fileprivate weak var _imageView: UIImageView? - + fileprivate var _selectionColor: UIColor? + fileprivate let kvoContext = UnsafeMutableRawPointer(bitPattern: 0) - fileprivate let selectionColor = UIColor(white: 0.2, alpha: 0.2) fileprivate weak var _selectedForegroundView: UIView? fileprivate var selectedForegroundView: UIView? { From 5874a7452595b7863f8a2e9fe922569f1e9ec131 Mon Sep 17 00:00:00 2001 From: awoerner Date: Thu, 3 Jan 2019 22:31:44 +0100 Subject: [PATCH 2/3] remove objc annotations --- Sources/FSPagerView.swift | 41 +++++++++++++-------------------------- 1 file changed, 13 insertions(+), 28 deletions(-) diff --git a/Sources/FSPagerView.swift b/Sources/FSPagerView.swift index 7fb17d9..efb8b2d 100644 --- a/Sources/FSPagerView.swift +++ b/Sources/FSPagerView.swift @@ -12,65 +12,50 @@ import UIKit -@objc public protocol FSPagerViewDataSource: NSObjectProtocol { /// Asks your data source object for the number of items in the pager view. - @objc(numberOfItemsInPagerView:) func numberOfItems(in pagerView: FSPagerView) -> Int /// Asks your data source object for the cell that corresponds to the specified item in the pager view. - @objc(pagerView:cellForItemAtIndex:) func pagerView(_ pagerView: FSPagerView, cellForItemAt index: Int) -> FSPagerViewCell } -@objc public protocol FSPagerViewDelegate: NSObjectProtocol { /// Asks the delegate if the item should be highlighted during tracking. - @objc(pagerView:shouldHighlightItemAtIndex:) - optional func pagerView(_ pagerView: FSPagerView, shouldHighlightItemAt index: Int) -> Bool + func pagerView(_ pagerView: FSPagerView, shouldHighlightItemAt index: Int) -> Bool /// Tells the delegate that the item at the specified index was highlighted. - @objc(pagerView:didHighlightItemAtIndex:) - optional func pagerView(_ pagerView: FSPagerView, didHighlightItemAt index: Int) + func pagerView(_ pagerView: FSPagerView, didHighlightItemAt index: Int) /// Asks the delegate if the specified item should be selected. - @objc(pagerView:shouldSelectItemAtIndex:) - optional func pagerView(_ pagerView: FSPagerView, shouldSelectItemAt index: Int) -> Bool + func pagerView(_ pagerView: FSPagerView, shouldSelectItemAt index: Int) -> Bool /// Tells the delegate that the item at the specified index was selected. - @objc(pagerView:didSelectItemAtIndex:) - optional func pagerView(_ pagerView: FSPagerView, didSelectItemAt index: Int) + func pagerView(_ pagerView: FSPagerView, didSelectItemAt index: Int) /// Tells the delegate that the specified cell is about to be displayed in the pager view. - @objc(pagerView:willDisplayCell:forItemAtIndex:) - optional func pagerView(_ pagerView: FSPagerView, willDisplay cell: FSPagerViewCell, forItemAt index: Int) + func pagerView(_ pagerView: FSPagerView, willDisplay cell: FSPagerViewCell, forItemAt index: Int) /// Tells the delegate that the specified cell was removed from the pager view. - @objc(pagerView:didEndDisplayingCell:forItemAtIndex:) - optional func pagerView(_ pagerView: FSPagerView, didEndDisplaying cell: FSPagerViewCell, forItemAt index: Int) + func pagerView(_ pagerView: FSPagerView, didEndDisplaying cell: FSPagerViewCell, forItemAt index: Int) /// Tells the delegate when the pager view is about to start scrolling the content. - @objc(pagerViewWillBeginDragging:) - optional func pagerViewWillBeginDragging(_ pagerView: FSPagerView) + func pagerViewWillBeginDragging(_ pagerView: FSPagerView) /// Tells the delegate when the user finishes scrolling the content. - @objc(pagerViewWillEndDragging:targetIndex:) - optional func pagerViewWillEndDragging(_ pagerView: FSPagerView, targetIndex: Int) + func pagerViewWillEndDragging(_ pagerView: FSPagerView, targetIndex: Int) /// Tells the delegate when the user scrolls the content view within the receiver. - @objc(pagerViewDidScroll:) - optional func pagerViewDidScroll(_ pagerView: FSPagerView) + func pagerViewDidScroll(_ pagerView: FSPagerView) /// Tells the delegate when a scrolling animation in the pager view concludes. - @objc(pagerViewDidEndScrollAnimation:) - optional func pagerViewDidEndScrollAnimation(_ pagerView: FSPagerView) + func pagerViewDidEndScrollAnimation(_ pagerView: FSPagerView) /// Tells the delegate that the pager view has ended decelerating the scrolling movement. - @objc(pagerViewDidEndDecelerating:) - optional func pagerViewDidEndDecelerating(_ pagerView: FSPagerView) + func pagerViewDidEndDecelerating(_ pagerView: FSPagerView) } @@ -80,10 +65,10 @@ open class FSPagerView: UIView,UICollectionViewDataSource,UICollectionViewDelega // MARK: - Public properties /// The object that acts as the data source of the pager view. - @IBOutlet open weak var dataSource: FSPagerViewDataSource? + open weak var dataSource: FSPagerViewDataSource? /// The object that acts as the delegate of the pager view. - @IBOutlet open weak var delegate: FSPagerViewDelegate? + open weak var delegate: FSPagerViewDelegate? /// The scroll direction of the pager view. Default is horizontal. @objc From a5a6a673fb8152bc71b2ec4c888742154e3c783e Mon Sep 17 00:00:00 2001 From: awoerner Date: Thu, 3 Jan 2019 22:44:57 +0100 Subject: [PATCH 3/3] Revert "remove objc annotations" This reverts commit 5874a7452595b7863f8a2e9fe922569f1e9ec131. --- Sources/FSPagerView.swift | 41 ++++++++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 13 deletions(-) diff --git a/Sources/FSPagerView.swift b/Sources/FSPagerView.swift index efb8b2d..7fb17d9 100644 --- a/Sources/FSPagerView.swift +++ b/Sources/FSPagerView.swift @@ -12,50 +12,65 @@ import UIKit +@objc public protocol FSPagerViewDataSource: NSObjectProtocol { /// Asks your data source object for the number of items in the pager view. + @objc(numberOfItemsInPagerView:) func numberOfItems(in pagerView: FSPagerView) -> Int /// Asks your data source object for the cell that corresponds to the specified item in the pager view. + @objc(pagerView:cellForItemAtIndex:) func pagerView(_ pagerView: FSPagerView, cellForItemAt index: Int) -> FSPagerViewCell } +@objc public protocol FSPagerViewDelegate: NSObjectProtocol { /// Asks the delegate if the item should be highlighted during tracking. - func pagerView(_ pagerView: FSPagerView, shouldHighlightItemAt index: Int) -> Bool + @objc(pagerView:shouldHighlightItemAtIndex:) + optional func pagerView(_ pagerView: FSPagerView, shouldHighlightItemAt index: Int) -> Bool /// Tells the delegate that the item at the specified index was highlighted. - func pagerView(_ pagerView: FSPagerView, didHighlightItemAt index: Int) + @objc(pagerView:didHighlightItemAtIndex:) + optional func pagerView(_ pagerView: FSPagerView, didHighlightItemAt index: Int) /// Asks the delegate if the specified item should be selected. - func pagerView(_ pagerView: FSPagerView, shouldSelectItemAt index: Int) -> Bool + @objc(pagerView:shouldSelectItemAtIndex:) + optional func pagerView(_ pagerView: FSPagerView, shouldSelectItemAt index: Int) -> Bool /// Tells the delegate that the item at the specified index was selected. - func pagerView(_ pagerView: FSPagerView, didSelectItemAt index: Int) + @objc(pagerView:didSelectItemAtIndex:) + optional func pagerView(_ pagerView: FSPagerView, didSelectItemAt index: Int) /// Tells the delegate that the specified cell is about to be displayed in the pager view. - func pagerView(_ pagerView: FSPagerView, willDisplay cell: FSPagerViewCell, forItemAt index: Int) + @objc(pagerView:willDisplayCell:forItemAtIndex:) + optional func pagerView(_ pagerView: FSPagerView, willDisplay cell: FSPagerViewCell, forItemAt index: Int) /// Tells the delegate that the specified cell was removed from the pager view. - func pagerView(_ pagerView: FSPagerView, didEndDisplaying cell: FSPagerViewCell, forItemAt index: Int) + @objc(pagerView:didEndDisplayingCell:forItemAtIndex:) + optional func pagerView(_ pagerView: FSPagerView, didEndDisplaying cell: FSPagerViewCell, forItemAt index: Int) /// Tells the delegate when the pager view is about to start scrolling the content. - func pagerViewWillBeginDragging(_ pagerView: FSPagerView) + @objc(pagerViewWillBeginDragging:) + optional func pagerViewWillBeginDragging(_ pagerView: FSPagerView) /// Tells the delegate when the user finishes scrolling the content. - func pagerViewWillEndDragging(_ pagerView: FSPagerView, targetIndex: Int) + @objc(pagerViewWillEndDragging:targetIndex:) + optional func pagerViewWillEndDragging(_ pagerView: FSPagerView, targetIndex: Int) /// Tells the delegate when the user scrolls the content view within the receiver. - func pagerViewDidScroll(_ pagerView: FSPagerView) + @objc(pagerViewDidScroll:) + optional func pagerViewDidScroll(_ pagerView: FSPagerView) /// Tells the delegate when a scrolling animation in the pager view concludes. - func pagerViewDidEndScrollAnimation(_ pagerView: FSPagerView) + @objc(pagerViewDidEndScrollAnimation:) + optional func pagerViewDidEndScrollAnimation(_ pagerView: FSPagerView) /// Tells the delegate that the pager view has ended decelerating the scrolling movement. - func pagerViewDidEndDecelerating(_ pagerView: FSPagerView) + @objc(pagerViewDidEndDecelerating:) + optional func pagerViewDidEndDecelerating(_ pagerView: FSPagerView) } @@ -65,10 +80,10 @@ open class FSPagerView: UIView,UICollectionViewDataSource,UICollectionViewDelega // MARK: - Public properties /// The object that acts as the data source of the pager view. - open weak var dataSource: FSPagerViewDataSource? + @IBOutlet open weak var dataSource: FSPagerViewDataSource? /// The object that acts as the delegate of the pager view. - open weak var delegate: FSPagerViewDelegate? + @IBOutlet open weak var delegate: FSPagerViewDelegate? /// The scroll direction of the pager view. Default is horizontal. @objc