|
@@ -19,21 +19,23 @@ class PublishViewController: BaseViewController {
|
|
}
|
|
}
|
|
|
|
|
|
override func setupViews() {
|
|
override func setupViews() {
|
|
- view.addSubview(segmentedView)
|
|
|
|
view.addSubview(listContainerView)
|
|
view.addSubview(listContainerView)
|
|
|
|
+ view.addSubview(segmentedView)
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
override func setupLayouts() {
|
|
override func setupLayouts() {
|
|
|
|
+
|
|
|
|
+ listContainerView.snp.makeConstraints { (make) in
|
|
|
|
+ make.top.left.right.equalToSuperview()
|
|
|
|
+ make.bottom.equalToSuperview()
|
|
|
|
+ }
|
|
segmentedView.snp.makeConstraints { (make) in
|
|
segmentedView.snp.makeConstraints { (make) in
|
|
- make.right.equalTo(-48)
|
|
|
|
make.height.equalTo(48)
|
|
make.height.equalTo(48)
|
|
- make.left.equalTo(48)
|
|
|
|
|
|
+ make.left.equalTo(0)
|
|
|
|
+ make.right.equalTo(0)
|
|
make.bottom.equalTo(-kSafeTabBarHeight)
|
|
make.bottom.equalTo(-kSafeTabBarHeight)
|
|
}
|
|
}
|
|
- listContainerView.snp.makeConstraints { (make) in
|
|
|
|
- make.top.left.right.equalToSuperview()
|
|
|
|
- make.bottom.equalTo(segmentedView.snp_top)
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
|
|
|
|
override func setupData() {
|
|
override func setupData() {
|
|
@@ -49,15 +51,12 @@ class PublishViewController: BaseViewController {
|
|
segmentedView.contentScrollView = listContainerView.scrollView
|
|
segmentedView.contentScrollView = listContainerView.scrollView
|
|
segmentedView.selectItemAt(index: 0)
|
|
segmentedView.selectItemAt(index: 0)
|
|
segmentedView.defaultSelectedIndex = 0
|
|
segmentedView.defaultSelectedIndex = 0
|
|
- segmentedView.contentEdgeInsetLeft = 4
|
|
|
|
- segmentedView.contentEdgeInsetRight = 4
|
|
|
|
return segmentedView
|
|
return segmentedView
|
|
}()
|
|
}()
|
|
|
|
|
|
//2.初始化dataSource
|
|
//2.初始化dataSource
|
|
private lazy var segmentedDataSource: JXSegmentedTitleDataSource = {
|
|
private lazy var segmentedDataSource: JXSegmentedTitleDataSource = {
|
|
let segmentedDataSource = JXSegmentedTitleDataSource()
|
|
let segmentedDataSource = JXSegmentedTitleDataSource()
|
|
- segmentedDataSource.titles = ["相册","拍视频","拍照"]
|
|
|
|
segmentedDataSource.isTitleColorGradientEnabled = true
|
|
segmentedDataSource.isTitleColorGradientEnabled = true
|
|
segmentedDataSource.isItemSpacingAverageEnabled = true
|
|
segmentedDataSource.isItemSpacingAverageEnabled = true
|
|
segmentedDataSource.isTitleZoomEnabled = true
|
|
segmentedDataSource.isTitleZoomEnabled = true
|
|
@@ -65,7 +64,7 @@ class PublishViewController: BaseViewController {
|
|
segmentedDataSource.titleSelectedColor = k333333Color
|
|
segmentedDataSource.titleSelectedColor = k333333Color
|
|
segmentedDataSource.titleNormalFont = kRegularFont14!
|
|
segmentedDataSource.titleNormalFont = kRegularFont14!
|
|
segmentedDataSource.titleSelectedFont = kBoldFont22
|
|
segmentedDataSource.titleSelectedFont = kBoldFont22
|
|
-
|
|
|
|
|
|
+ segmentedDataSource.titles = ["相册","拍视频","拍照"]
|
|
//reloadData(selectedIndex:)方法一定要调用,方法内部会刷新数据源数组
|
|
//reloadData(selectedIndex:)方法一定要调用,方法内部会刷新数据源数组
|
|
segmentedDataSource.reloadData(selectedIndex: 0)
|
|
segmentedDataSource.reloadData(selectedIndex: 0)
|
|
|
|
|
|
@@ -73,9 +72,9 @@ class PublishViewController: BaseViewController {
|
|
}()
|
|
}()
|
|
|
|
|
|
//3.初始化指示器indicator
|
|
//3.初始化指示器indicator
|
|
- private lazy var indicator: JXSegmentedIndicatorLineView = {
|
|
|
|
- let indicator = JXSegmentedIndicatorLineView()
|
|
|
|
- indicator.indicatorColor = k62CC74Color
|
|
|
|
|
|
+ private lazy var indicator: JXSegmentedIndicatorRainbowLineView = {
|
|
|
|
+ let indicator = JXSegmentedIndicatorRainbowLineView()
|
|
|
|
+ indicator.indicatorColors = [k62CC74Color,.white,.white]
|
|
indicator.indicatorHeight = 3
|
|
indicator.indicatorHeight = 3
|
|
indicator.indicatorWidth = 20
|
|
indicator.indicatorWidth = 20
|
|
return indicator
|
|
return indicator
|
|
@@ -104,6 +103,8 @@ extension PublishViewController : JXSegmentedViewDelegate {
|
|
default:
|
|
default:
|
|
break
|
|
break
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
// 点击选中的情况才会调用该方法
|
|
// 点击选中的情况才会调用该方法
|
|
@@ -114,7 +115,27 @@ extension PublishViewController : JXSegmentedViewDelegate {
|
|
|
|
|
|
// 滚动选中的情况才会调用该方法
|
|
// 滚动选中的情况才会调用该方法
|
|
func segmentedView(_ segmentedView: JXSegmentedView, didScrollSelectedItemAt index: Int) {
|
|
func segmentedView(_ segmentedView: JXSegmentedView, didScrollSelectedItemAt index: Int) {
|
|
-
|
|
|
|
|
|
+ switch index {
|
|
|
|
+ case 0:
|
|
|
|
+ let segmentedTitleItemModel = JXSegmentedTitleItemModel()
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ segmentedDataSource.refreshItemModel(segmentedView, currentSelectedItemModel: segmentedDataSource.dataSource[index], willSelectedItemModel: segmentedTitleItemModel, selectedType: JXSegmentedViewItemSelectedType.scroll)
|
|
|
|
+
|
|
|
|
+ case 1:
|
|
|
|
+
|
|
|
|
+ let segmentedTitleItemModel = JXSegmentedTitleItemModel()
|
|
|
|
+
|
|
|
|
+ segmentedDataSource.refreshItemModel(segmentedView, currentSelectedItemModel: segmentedDataSource.dataSource[index], willSelectedItemModel: segmentedTitleItemModel, selectedType: JXSegmentedViewItemSelectedType.scroll)
|
|
|
|
+ case 2:
|
|
|
|
+
|
|
|
|
+ let segmentedTitleItemModel = JXSegmentedTitleItemModel()
|
|
|
|
+
|
|
|
|
+ segmentedDataSource.refreshItemModel(segmentedView, currentSelectedItemModel: segmentedDataSource.dataSource[index], willSelectedItemModel: segmentedTitleItemModel, selectedType: JXSegmentedViewItemSelectedType.scroll)
|
|
|
|
+ default:
|
|
|
|
+ break
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
// 正在滚动中的回调
|
|
// 正在滚动中的回调
|