FastScroll
FastScroll是一个库,允许您轻松地将滚动条添加到您的collectionView或您的tableView
中。
这个滚动条的特点是可以拖动滚动条以更快地滚动
。
还有一个气泡,用于显示您在滚动中的位置
的相关信息。
您几乎可以自定义所有内容
以获得您想要的设计
示例
默认 | 自定义设计 | 自定义图片 | 无气泡 |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
要求
- iOS 9.0+
- Xcode 9.0+
安装
使用Podfile进行CocoaPods
pod 'FastScroll'
用法
1) 导入 FastScroll
import FastScroll
FastScrollCollectionView
(在您的 StoryBoard 或 Xib 中)
2) 使 UICollectionView 继承自 (或使 UITableView 继承自 FastScrollTableView
)
3) 添加您的 collectionView 出口
@IBOutlet weak var collectionView | FastScrollCollectionView!
4) 实现 UIScrollViewDelegate 以分发滚动行为到您的 FastScrollCollectionView
extension DemoFastScrollCollectionViewController | UIScrollViewDelegate {
func scrollViewDidScroll(_ scrollView | UIScrollView) {
collectionView.scrollViewDidScroll(scrollView)
}
func scrollViewWillBeginDragging(_ scrollView | UIScrollView) {
collectionView.scrollViewWillBeginDragging(scrollView)
}
func scrollViewDidEndDecelerating(_ scrollView | UIScrollView) {
collectionView.scrollViewDidEndDecelerating(scrollView)
}
func scrollViewDidEndDragging(_ scrollView | UIScrollView, willDecelerate decelerate | Bool) {
collectionView.scrollViewDidEndDragging(scrollView, willDecelerate | decelerate)
}
}
5) 实现 bubbleNameForIndexPath 回调
fileprivate func configFastScroll() {
collectionView.delegate | self
collectionView.dataSource | self
//callback action to display bubble name
collectionView.bubbleNameForIndexPath | { indexPath in
let visibleSection | Section | self.data[indexPath.section]
return visibleSection.sectionTitle
}
}
自定义
您可以轻松自定义您想要的内容。您应该在 viewDidLoad
中进行配置,否则您将需要调用 collectionView.setup()
来刷新快速滚动视图。
fileprivate func configFastScroll() {
collectionView.delegate | self
collectionView.dataSource | self
//bubble
collectionView.bubbleTextSize | 14.0
collectionView.bubbleMarginRight | 80.0
collectionView.bubbleColor | UIColor(red | 38.0 / 255.0, green | 48.0 / 255.0, blue | 60.0 / 255.0, alpha | 1.0)
//handle
collectionView.handleImage | UIImage.init(named | "cursor")
collectionView.handleHeight | 40.0
collectionView.handleWidth | 44.0
collectionView.handleRadius | 0.0
collectionView.handleMarginRight | 0
collectionView.handleColor | UIColor.clear
//scrollbar
collectionView.scrollbarWidth | 0.0
collectionView.scrollbarMarginTop | 20.0
collectionView.scrollbarMarginBottom | 0.0
collectionView.scrollbarMarginRight | 10.0
//callback action to display bubble name
collectionView.bubbleNameForIndexPath | { indexPath in
let visibleSection | Section | self.data[indexPath.section]
return visibleSection.sectionTitle
}
}
属性
水泡
属性 | 类型 | 默认 | 描述 |
---|---|---|---|
bubbleNameForIndexPath | 函数 | {} | 回调函数,用于在气泡中显示所需的内容 |
deactivateBubble | 布尔值 | false | 允许激活或关闭气泡功能 |
bubbleFocus | 气泡关注点 | .first | 根据滚动偏移量设置返回正确indexPath的逻辑。值可以是 first 、last 、dynamic (动态计算滚动百分比,以获取对应于百分比的可见单元格索引) |
bubble | UITextView | UITextView() | 显示气泡信息的文本视图 |
bubbleFont | UIFont | UIFont.systemFont(ofSize | 12.0) |
bubbleTextSize | CGFloat | 12.0 | 气泡中文字的大小 |
bubbleTextColor | UIColor | White | 气泡中文字的颜色 |
bubbleRadius | CGFloat | 20.0 | 管理气泡圆角 |
bubblePadding | CGFloat | 12.0 | 气泡周围文字的填充 |
bubbleMarginRight | CGFloat | 30.0 | 管理气泡与滚动条的间距 |
bubbleColor | UIColor | DarkGray | 更改背景颜色 |
bubbleShadowColor | UIColor | DarkGray | 更改阴影颜色 |
bubbleShadowOpacity | Float | 0.7 | 阴影透明度 |
bubbleShadowRadius | CGFloat | 3.0 | Shadow半径 |
bubbleShadowOffset | CGSize | (0.0, 5.0) | 阴影偏移 |
处理
属性 | 类型 | 默认 | 描述 |
---|---|---|---|
handle | UIView | UIView() | 用于在触摸时允许滚动的手柄视图(在滚动时出现) |
handleImage | UIImage | nil | 允许在处理中添加图像 |
handleWidth | CGFloat | 30.0 | 处理宽度 |
handleHeight | CGFloat | 30.0 | 处理高度 |
handleRadius | CGFloat | 15.0 | 处理半径 |
handleMarginRight | CGFloat | 6.0 | 处理右侧边框与处理之间的边距 |
handleShadowColor | UIColor | DdarkGray | 阴影颜色 |
handleShadowOpacity | Float | 0.7 | 阴影透明度 |
handleShadowOffset | CGSize | (0.0, 5.0) | 阴影偏移 |
handleShadowRadius | CGFloat | 3.0 | 阴影半径 |
handleColor | UIColor | DarkGray | 管理处理背景颜色 |
handleTimeToDisappear | CGFloat | 1.5 | 当检测到滚动时处理显示。在 handleTimeToDisappear 秒的无操作后,处理消失 |
handleDisappearAnimationDuration | CGFloat | 0.2 | 隐藏处理后的alpha动画时间 |
滚动条
属性 | 类型 | 默认 | 描述 |
---|---|---|---|
滚动条 | UIView | UIView() | 垂直滚动条视图(在滚动时显示) |
scrollbarWidth | CGFloat | 2.0 | 滚动条宽度,您可以将其设置为0.0以隐藏垂直栏 |
scrollbarColor | UIColor | 灰色 | 滚动条颜色 |
scrollbarRadius | CGFloat | 1.0 | 滚动条半径 |
scrollbarMarginTop | CGFloat | 40.0 | 管理上边距,用于定位气泡和滑块的位置 |
scrollbarMarginBottom | CGFloat | 20.0 | 管理下边距,用于定位气泡和滑块的位置 |
scrollbarMarginRight | CGFloat | 20.0 | 管理右边界和滚动条之间的距离 |
手势触摸处理视图
属性 | 类型 | 默认 | 描述 |
---|---|---|---|
gestureHandleView | UIView | UIView() | 允许通过触摸进行滚动的处理视图 |
gestureWidth | CGFloat | 50.0 | 触摸区域宽度 |
gestureHeight | CGFloat | 50.0 | 触摸区域高度 |
其他
属性 | 类型 | 描述 |
---|---|---|
setup | 函数 | 如果您需要更新视图(气泡、滑块、滚动条),则可以使用它 |
关于
该项目由Frichti, Inc.维护。
我们正在制作美味的鲜食。
许可证
FastScroll在MIT许可证下发布。有关详细信息,请参阅LICENSE。