Commit 3333ca48 authored by pete谢兆麟's avatar pete谢兆麟

手势冲突

parent bfc886a9
...@@ -90,6 +90,7 @@ extension YHServerHKLifeViewController { ...@@ -90,6 +90,7 @@ extension YHServerHKLifeViewController {
guard let self = self else { return } guard let self = self else { return }
self.cell.tableFootView.myCollectView.es.resetNoMoreData() self.cell.tableFootView.myCollectView.es.resetNoMoreData()
self.cell.tableFootView.myCollectView.setContentOffset(CGPoint.zero, animated: false) self.cell.tableFootView.myCollectView.setContentOffset(CGPoint.zero, animated: false)
self.setScrollState()
self.classId = model.id self.classId = model.id
self.homeViewModel.getList(true, model.id) {[weak self] success, error in self.homeViewModel.getList(true, model.id) {[weak self] success, error in
guard let self = self else { return } guard let self = self else { return }
...@@ -114,6 +115,17 @@ extension YHServerHKLifeViewController { ...@@ -114,6 +115,17 @@ extension YHServerHKLifeViewController {
homeTableView.delegate = self homeTableView.delegate = self
homeTableView.dataSource = self homeTableView.dataSource = self
} }
func setScrollState() {
let offsetY = homeTableView.contentOffset.y
if offsetY >= 365 {
homeTableView.isScrollEnabled = false
cell.tableFootView.myCollectView.isScrollEnabled = true
} else {
homeTableView.isScrollEnabled = true
cell.tableFootView.myCollectView.isScrollEnabled = false
}
}
} }
// MARK: - UITableViewDelegate 和 UITableViewDataSource // MARK: - UITableViewDelegate 和 UITableViewDataSource
...@@ -169,15 +181,62 @@ extension YHServerHKLifeViewController : UITableViewDelegate,UITableViewDataSour ...@@ -169,15 +181,62 @@ extension YHServerHKLifeViewController : UITableViewDelegate,UITableViewDataSour
}) })
} }
} }
cell.scrollBlock = { [weak self] falg in
guard let self = self else { return }
tableView.isScrollEnabled = falg
}
cell.tableFootView.items = dataSouce cell.tableFootView.items = dataSouce
// cell.tableFootView.myCollectView.es.removeRefreshFooter() // cell.tableFootView.myCollectView.es.removeRefreshFooter()
cell.selectionStyle = .none cell.selectionStyle = .none
cell.tableFootView.myCollectView.isScrollEnabled = false
cell.tableFootView.isNeedScrollBlock = true
return cell return cell
} }
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
} }
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if scrollView == homeTableView {
let offsetY = homeTableView.contentOffset.y
if offsetY >= 365 {
homeTableView.isScrollEnabled = false
cell.tableFootView.myCollectView.isScrollEnabled = true
} else {
homeTableView.isScrollEnabled = true
cell.tableFootView.myCollectView.isScrollEnabled = false
}
}
}
func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
// 用户停止拖拽时调用,可以执行一些后续操作
if scrollView == homeTableView {
let offsetY = homeTableView.contentOffset.y
if offsetY >= 365 {
homeTableView.isScrollEnabled = false
cell.tableFootView.myCollectView.isScrollEnabled = true
} else {
homeTableView.isScrollEnabled = true
cell.tableFootView.myCollectView.isScrollEnabled = false
}
}
}
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
// 滚动减速完成时调用,表示滚动完全停止
if scrollView == homeTableView {
let offsetY = homeTableView.contentOffset.y
if offsetY >= 365 {
homeTableView.isScrollEnabled = false
cell.tableFootView.myCollectView.isScrollEnabled = true
} else {
homeTableView.isScrollEnabled = true
cell.tableFootView.myCollectView.isScrollEnabled = false
}
}
}
} }
extension YHServerHKLifeViewController: JXSegmentedListContainerViewListDelegate { extension YHServerHKLifeViewController: JXSegmentedListContainerViewListDelegate {
...@@ -189,6 +248,8 @@ extension YHServerHKLifeViewController: JXSegmentedListContainerViewListDelegate ...@@ -189,6 +248,8 @@ extension YHServerHKLifeViewController: JXSegmentedListContainerViewListDelegate
class YHServerHKLifeViewCell: UITableViewCell { class YHServerHKLifeViewCell: UITableViewCell {
typealias LoadBlock = () -> () typealias LoadBlock = () -> ()
var moreBlock: LoadBlock? var moreBlock: LoadBlock?
typealias ScrollBlock = (Bool) -> ()
var scrollBlock: ScrollBlock?
static let cellReuseIdentifier = "YHServerHKLifeViewCell" static let cellReuseIdentifier = "YHServerHKLifeViewCell"
var tableFootView: YHServiceTableFootView! var tableFootView: YHServiceTableFootView!
...@@ -235,6 +296,12 @@ extension YHServerHKLifeViewCell { ...@@ -235,6 +296,12 @@ extension YHServerHKLifeViewCell {
block() block()
} }
} }
tableFootView.scrollBlock = {[weak self] flag in
guard let self = self else { return }
if let block = self.scrollBlock {
block(flag)
}
}
// tableFootView.frame = CGRect(x: 0, y: 0, width: KScreenWidth, height: KScreenHeight) // tableFootView.frame = CGRect(x: 0, y: 0, width: KScreenWidth, height: KScreenHeight)
contentView.addSubview(tableFootView) contentView.addSubview(tableFootView)
tableFootView.snp.makeConstraints { make in tableFootView.snp.makeConstraints { make in
......
...@@ -90,6 +90,7 @@ extension YHServiceListViewController { ...@@ -90,6 +90,7 @@ extension YHServiceListViewController {
guard let self = self else { return } guard let self = self else { return }
self.cell.tableFootView.myCollectView.es.resetNoMoreData() self.cell.tableFootView.myCollectView.es.resetNoMoreData()
self.cell.tableFootView.myCollectView.setContentOffset(CGPoint.zero, animated: false) self.cell.tableFootView.myCollectView.setContentOffset(CGPoint.zero, animated: false)
self.setScrollState()
self.classId = model.id self.classId = model.id
self.homeViewModel.getList(true, model.id) {[weak self] success, error in self.homeViewModel.getList(true, model.id) {[weak self] success, error in
guard let self = self else { return } guard let self = self else { return }
...@@ -115,6 +116,17 @@ extension YHServiceListViewController { ...@@ -115,6 +116,17 @@ extension YHServiceListViewController {
homeTableView.delegate = self homeTableView.delegate = self
homeTableView.dataSource = self homeTableView.dataSource = self
} }
func setScrollState() {
let offsetY = homeTableView.contentOffset.y
if offsetY >= 365 {
homeTableView.isScrollEnabled = false
cell.tableFootView.myCollectView.isScrollEnabled = true
} else {
homeTableView.isScrollEnabled = true
cell.tableFootView.myCollectView.isScrollEnabled = false
}
}
} }
// MARK: - UITableViewDelegate 和 UITableViewDataSource // MARK: - UITableViewDelegate 和 UITableViewDataSource
...@@ -169,14 +181,61 @@ extension YHServiceListViewController : UITableViewDelegate,UITableViewDataSourc ...@@ -169,14 +181,61 @@ extension YHServiceListViewController : UITableViewDelegate,UITableViewDataSourc
}) })
} }
} }
cell.scrollBlock = { [weak self] falg in
guard let self = self else { return }
tableView.isScrollEnabled = falg
}
cell.tableFootView.items = dataSouce cell.tableFootView.items = dataSouce
cell.selectionStyle = .none cell.selectionStyle = .none
cell.tableFootView.myCollectView.isScrollEnabled = false
cell.tableFootView.isNeedScrollBlock = true
return cell return cell
} }
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
} }
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if scrollView == homeTableView {
let offsetY = homeTableView.contentOffset.y
if offsetY >= 365 {
homeTableView.isScrollEnabled = false
cell.tableFootView.myCollectView.isScrollEnabled = true
} else {
homeTableView.isScrollEnabled = true
cell.tableFootView.myCollectView.isScrollEnabled = false
}
}
}
func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
// 用户停止拖拽时调用,可以执行一些后续操作
if scrollView == homeTableView {
let offsetY = homeTableView.contentOffset.y
if offsetY >= 365 {
homeTableView.isScrollEnabled = false
cell.tableFootView.myCollectView.isScrollEnabled = true
} else {
homeTableView.isScrollEnabled = true
cell.tableFootView.myCollectView.isScrollEnabled = false
}
}
}
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
// 滚动减速完成时调用,表示滚动完全停止
if scrollView == homeTableView {
let offsetY = homeTableView.contentOffset.y
if offsetY >= 365 {
homeTableView.isScrollEnabled = false
cell.tableFootView.myCollectView.isScrollEnabled = true
} else {
homeTableView.isScrollEnabled = true
cell.tableFootView.myCollectView.isScrollEnabled = false
}
}
}
} }
extension YHServiceListViewController: JXSegmentedListContainerViewListDelegate { extension YHServiceListViewController: JXSegmentedListContainerViewListDelegate {
......
...@@ -11,7 +11,9 @@ import UIKit ...@@ -11,7 +11,9 @@ import UIKit
class YHServiceTableFootView: UIView { class YHServiceTableFootView: UIView {
typealias LoadBlock = () -> () typealias LoadBlock = () -> ()
var moreBlock: LoadBlock? var moreBlock: LoadBlock?
typealias ScrollBlock = (Bool) -> ()
var scrollBlock: ScrollBlock?
var isNeedScrollBlock: Bool = false
var items:[YHHomeListModel?] = [] { var items:[YHHomeListModel?] = [] {
didSet { didSet {
self.myCollectView.reloadData() self.myCollectView.reloadData()
...@@ -24,12 +26,12 @@ class YHServiceTableFootView: UIView { ...@@ -24,12 +26,12 @@ class YHServiceTableFootView: UIView {
flowLayout.minimumInteritemSpacing = 7.0 flowLayout.minimumInteritemSpacing = 7.0
flowLayout.minimumColumnSpacing = 7.0 flowLayout.minimumColumnSpacing = 7.0
flowLayout.sectionInset = UIEdgeInsets(top: 20, left: 20, bottom: 20, right: 20) flowLayout.sectionInset = UIEdgeInsets(top: 20, left: 20, bottom: 20, right: 20)
let collectinoView = YHGestureCollectionView(frame: .zero, collectionViewLayout: flowLayout) let collectinoView = UICollectionView(frame: .zero, collectionViewLayout: flowLayout)
collectinoView.backgroundColor = .white collectinoView.backgroundColor = .white
collectinoView.register(YHHomeCollectionViewCell.self, forCellWithReuseIdentifier:YHHomeCollectionViewCell.cellReuseIdentifier) collectinoView.register(YHHomeCollectionViewCell.self, forCellWithReuseIdentifier:YHHomeCollectionViewCell.cellReuseIdentifier)
collectinoView.delegate = self collectinoView.delegate = self
collectinoView.dataSource = self collectinoView.dataSource = self
// collectinoView.bounces = false collectinoView.bounces = false
collectinoView.translatesAutoresizingMaskIntoConstraints = false collectinoView.translatesAutoresizingMaskIntoConstraints = false
collectinoView.alwaysBounceVertical = true collectinoView.alwaysBounceVertical = true
collectinoView.showsVerticalScrollIndicator = false collectinoView.showsVerticalScrollIndicator = false
...@@ -103,6 +105,60 @@ extension YHServiceTableFootView: UICollectionViewDelegate, UICollectionViewData ...@@ -103,6 +105,60 @@ extension YHServiceTableFootView: UICollectionViewDelegate, UICollectionViewData
printLog("直接播放视频") printLog("直接播放视频")
} }
} }
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if scrollView == myCollectView, isNeedScrollBlock == true {
let offsetY = myCollectView.contentOffset.y
if offsetY <= 0 {
myCollectView.isScrollEnabled = false
if let block = scrollBlock {
block(true)
}
} else {
myCollectView.isScrollEnabled = true
if let block = scrollBlock {
block(false)
}
}
}
}
func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
// 用户停止拖拽时调用,可以执行一些后续操作
if scrollView == myCollectView, isNeedScrollBlock == true {
let offsetY = myCollectView.contentOffset.y
if offsetY <= 0 {
myCollectView.isScrollEnabled = false
if let block = scrollBlock {
block(true)
}
} else {
myCollectView.isScrollEnabled = true
if let block = scrollBlock {
block(false)
}
}
}
}
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
// 滚动减速完成时调用,表示滚动完全停止
if scrollView == myCollectView, isNeedScrollBlock == true {
let offsetY = myCollectView.contentOffset.y
if offsetY <= 0 {
myCollectView.isScrollEnabled = false
if let block = scrollBlock {
block(true)
}
} else {
myCollectView.isScrollEnabled = true
if let block = scrollBlock {
block(false)
}
}
}
}
} }
extension YHServiceTableFootView: CollectionViewWaterfallLayoutDelegate { extension YHServiceTableFootView: CollectionViewWaterfallLayoutDelegate {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment