Commit 444dcda7 authored by David黄金龙's avatar David黄金龙

Merge branch 'youhua-dev' of http://gitlab.galaxy-immi.com/mobile-group/galaxy-iOS into youhua-dev

* 'youhua-dev' of http://gitlab.galaxy-immi.com/mobile-group/galaxy-iOS:
  //  视频播放
  手势冲突
parents 036818a5 9bf45a29
...@@ -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 {
......
...@@ -153,11 +153,6 @@ class YHAppVersionForceUpdateView: UIView { ...@@ -153,11 +153,6 @@ class YHAppVersionForceUpdateView: UIView {
} }
} }
@objc func dismiss() {
YHLoginManager.shared.isShowVersionUpdate = false
self.removeFromSuperview()
}
@objc func didClickUpdateBtn() { @objc func didClickUpdateBtn() {
YHAppVersionManager.shared.goToAppStore() YHAppVersionManager.shared.goToAppStore()
} }
......
...@@ -319,6 +319,7 @@ class YHNetRequest: NSObject { ...@@ -319,6 +319,7 @@ class YHNetRequest: NSObject {
YHAppVersionForceUpdateView.alertView().show() YHAppVersionForceUpdateView.alertView().show()
// 发送强制更新通知 // 发送强制更新通知
NotificationCenter.default.post(name: YhConstant.YhNotification.didForceUpgradeNotifiction, object: nil) NotificationCenter.default.post(name: YhConstant.YhNotification.didForceUpgradeNotifiction, object: nil)
YHHUD.hide()
} }
return return
} }
......
...@@ -7,38 +7,53 @@ ...@@ -7,38 +7,53 @@
// //
import UIKit import UIKit
import AVFoundation
class YHVideoPlayerVC: YHBaseViewController { class YHVideoPlayerVC: YHBaseViewController {
lazy var navBar: YHCustomNavigationBar = { var url:String = ""
let bar = YHCustomNavigationBar.navBar() private var player: AVPlayer?
bar.backgroundColor = .white private var playerLayer: AVPlayerLayer?
if let title = self.title, !title.isEmpty {
bar.title = title lazy var navBar: UIView = {
} let bar = UIView()
bar.showRightButtonType(.clean) let backBtn = UIButton()
bar.backBlock = { backBtn.setImage(UIImage(named: "back_icon")?.withRenderingMode(.alwaysTemplate), for: .normal)
[weak self] in backBtn.tintColor = .white
guard let self = self else { return } backBtn.addTarget(self, action: #selector(didBackButtonClicked), for: .touchUpInside)
self.navigationController?.popViewController(animated: true) backBtn.YH_clickEdgeInsets = UIEdgeInsets(top: 20, left: 30, bottom: 20, right: 20)
bar.addSubview(backBtn)
let shareBtn = UIButton()
shareBtn.setImage(UIImage(named: "video_share"), for: .normal)
shareBtn.addTarget(self, action: #selector(didShareButtonClicked), for: .touchUpInside)
shareBtn.YH_clickEdgeInsets = UIEdgeInsets(top: 20, left: 30, bottom: 20, right: 20)
bar.addSubview(shareBtn)
backBtn.snp.makeConstraints { make in
make.width.height.equalTo(24)
make.centerY.equalToSuperview()
make.left.equalTo(13)
} }
bar.rightBtnClick = { shareBtn.snp.makeConstraints { make in
[weak self] in make.width.height.equalTo(24)
guard let self = self else { return } make.centerY.equalToSuperview()
make.right.equalTo(-16)
} }
return bar return bar
}() }()
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
createUI()
play()
} }
func createUI() { func createUI() {
gk_navigationBar.isHidden = true gk_navigationBar.isHidden = true
view.backgroundColor = .black view.backgroundColor = .black
view.addSubview(navBar) view.addSubview(navBar)
setupPlayerUI()
navBar.snp.makeConstraints { make in navBar.snp.makeConstraints { make in
make.left.right.equalToSuperview() make.left.right.equalToSuperview()
make.top.equalToSuperview().offset(k_Height_statusBar()) make.top.equalToSuperview().offset(k_Height_statusBar())
...@@ -46,5 +61,34 @@ class YHVideoPlayerVC: YHBaseViewController { ...@@ -46,5 +61,34 @@ class YHVideoPlayerVC: YHBaseViewController {
} }
} }
func setupPlayerUI() {
guard let videoURL = URL(string: url) else {
YHHUD.flash(message: "无效URL")
return
}
player = AVPlayer(url: videoURL)
playerLayer = AVPlayerLayer(player: player)
playerLayer?.frame = CGRect(x: 0, y: k_Height_NavigationtBarAndStatuBar, width: KScreenWidth, height: KScreenHeight-k_Height_NavigationtBarAndStatuBar-k_Height_safeAreaInsetsBottom())
view.layer.addSublayer(playerLayer!)
}
func play() {
player?.play()
}
func pause() {
player?.pause()
}
}
extension YHVideoPlayerVC {
@objc func didBackButtonClicked() {
self.navigationController?.popViewController(animated: true)
}
@objc func didShareButtonClicked() {
}
} }
{
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "share@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "share@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
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