测试已测试 | ✗ |
Lang语言 | SwiftSwift |
许可证 | MIT |
Released最新发布 | 2015年1月 |
SPM支持 SPM | ✗ |
由 Stefan Lage 维护。
一个允许进行类似 Tinder 或 Twitter 的导航栏系统。SLPagingViewSwift 是 SLPagingView Objective-C 版本的 Swift 版本
将 SLPagingView 文件夹导入到您的项目中。
易于实现
// Make views for the navigation bar
var img1 = UIImage(named: "gear")
img1 = img1?.imageWithRenderingMode(.AlwaysTemplate)
var img2 = UIImage(named: "profile")
img2 = img2?.imageWithRenderingMode(.AlwaysTemplate)
var img3 = UIImage(named: "chat")
img3 = img3?.imageWithRenderingMode(.AlwaysTemplate)
var items = [UIImageView(image: img1), UIImageView(image: img2), UIImageView(image: img3)]
var controllers = [ctr1, ctr2, ctr3]
controller = SLPagingViewSwift(items: items, controllers: controllers, showPageControl: false)
然后您可以根据自己的需求修改行为
// Tinder Like
controller?.pagingViewMoving = ({ subviews in
for v in subviews {
var lbl = v as UIImageView
var c = gray
if(lbl.frame.origin.x > 45 && lbl.frame.origin.x < 145) {
c = self.gradient(Double(lbl.frame.origin.x), topX: Double(46), bottomX: Double(144), initC: orange, goal: gray)
}
else if (lbl.frame.origin.x > 145 && lbl.frame.origin.x < 245) {
c = self.gradient(Double(lbl.frame.origin.x), topX: Double(146), bottomX: Double(244), initC: gray, goal: orange)
}
else if(lbl.frame.origin.x == 145){
c = orange
}
lbl.tintColor = c
}
})
类似 Twitter 的行为
// Twitter Like
controller?.pagingViewMovingRedefine = ({ scrollView, subviews in
var i = 0
var xOffset = scrollView.contentOffset.x
for v in subviews {
var lbl = v as UILabel
var alpha = CGFloat(0)
if(lbl.frame.origin.x > 45 && lbl.frame.origin.x < 145) {
alpha = 1.0 - (xOffset - (CGFloat(i)*320.0)) / 320.0
}
else if (lbl.frame.origin.x > 145 && lbl.frame.origin.x < 245) {
alpha = (xOffset - (CGFloat(i)*320.0)) / 320.0 + 1.0
}
else if(lbl.frame.origin.x == 145){
alpha = 1.0
}
lbl.alpha = CGFloat(alpha)
i++
}
})
如果您想要改变默认的分页控制索引(或其他任何属性),可以通过以下调用来实现:
func setCurrentIndex(index: NSInteger, animated: Bool)
您可以通过配置导航栏项来轻松地进行自定义
var navigationSideItemsStyle: SLNavigationSideItemsStyle
使用以下其中一个值:
enum SLNavigationSideItemsStyle: Int {
case SLNavigationSideItemsStyleOnBounds = 40
case SLNavigationSideItemsStyleClose = 30
case SLNavigationSideItemsStyleNormal = 20
case SLNavigationSideItemsStyleFar = 10
case SLNavigationSideItemsStyleDefault = 0
case SLNavigationSideItemsStyleCloseToEachOne = -40
}
采用 MIT 许可证可用,请参阅 LICENSE 获取更多信息。