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 {
guard let self = self else { return }
self.cell.tableFootView.myCollectView.es.resetNoMoreData()
self.cell.tableFootView.myCollectView.setContentOffset(CGPoint.zero, animated: false)
self.setScrollState()
self.classId = model.id
self.homeViewModel.getList(true, model.id) {[weak self] success, error in
guard let self = self else { return }
......@@ -114,6 +115,17 @@ extension YHServerHKLifeViewController {
homeTableView.delegate = 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
......@@ -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.myCollectView.es.removeRefreshFooter()
cell.selectionStyle = .none
cell.tableFootView.myCollectView.isScrollEnabled = false
cell.tableFootView.isNeedScrollBlock = true
return cell
}
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 {
......@@ -189,6 +248,8 @@ extension YHServerHKLifeViewController: JXSegmentedListContainerViewListDelegate
class YHServerHKLifeViewCell: UITableViewCell {
typealias LoadBlock = () -> ()
var moreBlock: LoadBlock?
typealias ScrollBlock = (Bool) -> ()
var scrollBlock: ScrollBlock?
static let cellReuseIdentifier = "YHServerHKLifeViewCell"
var tableFootView: YHServiceTableFootView!
......@@ -235,6 +296,12 @@ extension YHServerHKLifeViewCell {
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)
contentView.addSubview(tableFootView)
tableFootView.snp.makeConstraints { make in
......
......@@ -90,6 +90,7 @@ extension YHServiceListViewController {
guard let self = self else { return }
self.cell.tableFootView.myCollectView.es.resetNoMoreData()
self.cell.tableFootView.myCollectView.setContentOffset(CGPoint.zero, animated: false)
self.setScrollState()
self.classId = model.id
self.homeViewModel.getList(true, model.id) {[weak self] success, error in
guard let self = self else { return }
......@@ -115,6 +116,17 @@ extension YHServiceListViewController {
homeTableView.delegate = 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
......@@ -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.selectionStyle = .none
cell.tableFootView.myCollectView.isScrollEnabled = false
cell.tableFootView.isNeedScrollBlock = true
return cell
}
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 {
......
......@@ -11,7 +11,9 @@ import UIKit
class YHServiceTableFootView: UIView {
typealias LoadBlock = () -> ()
var moreBlock: LoadBlock?
typealias ScrollBlock = (Bool) -> ()
var scrollBlock: ScrollBlock?
var isNeedScrollBlock: Bool = false
var items:[YHHomeListModel?] = [] {
didSet {
self.myCollectView.reloadData()
......@@ -24,12 +26,12 @@ class YHServiceTableFootView: UIView {
flowLayout.minimumInteritemSpacing = 7.0
flowLayout.minimumColumnSpacing = 7.0
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.register(YHHomeCollectionViewCell.self, forCellWithReuseIdentifier:YHHomeCollectionViewCell.cellReuseIdentifier)
collectinoView.delegate = self
collectinoView.dataSource = self
// collectinoView.bounces = false
collectinoView.bounces = false
collectinoView.translatesAutoresizingMaskIntoConstraints = false
collectinoView.alwaysBounceVertical = true
collectinoView.showsVerticalScrollIndicator = false
......@@ -103,6 +105,60 @@ extension YHServiceTableFootView: UICollectionViewDelegate, UICollectionViewData
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 {
......
......@@ -153,11 +153,6 @@ class YHAppVersionForceUpdateView: UIView {
}
}
@objc func dismiss() {
YHLoginManager.shared.isShowVersionUpdate = false
self.removeFromSuperview()
}
@objc func didClickUpdateBtn() {
YHAppVersionManager.shared.goToAppStore()
}
......
......@@ -319,6 +319,7 @@ class YHNetRequest: NSObject {
YHAppVersionForceUpdateView.alertView().show()
// 发送强制更新通知
NotificationCenter.default.post(name: YhConstant.YhNotification.didForceUpgradeNotifiction, object: nil)
YHHUD.hide()
}
return
}
......
......@@ -7,38 +7,53 @@
//
import UIKit
import AVFoundation
class YHVideoPlayerVC: YHBaseViewController {
lazy var navBar: YHCustomNavigationBar = {
let bar = YHCustomNavigationBar.navBar()
bar.backgroundColor = .white
if let title = self.title, !title.isEmpty {
bar.title = title
}
bar.showRightButtonType(.clean)
bar.backBlock = {
[weak self] in
guard let self = self else { return }
self.navigationController?.popViewController(animated: true)
var url:String = ""
private var player: AVPlayer?
private var playerLayer: AVPlayerLayer?
lazy var navBar: UIView = {
let bar = UIView()
let backBtn = UIButton()
backBtn.setImage(UIImage(named: "back_icon")?.withRenderingMode(.alwaysTemplate), for: .normal)
backBtn.tintColor = .white
backBtn.addTarget(self, action: #selector(didBackButtonClicked), for: .touchUpInside)
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 = {
[weak self] in
guard let self = self else { return }
shareBtn.snp.makeConstraints { make in
make.width.height.equalTo(24)
make.centerY.equalToSuperview()
make.right.equalTo(-16)
}
return bar
}()
override func viewDidLoad() {
super.viewDidLoad()
createUI()
play()
}
func createUI() {
gk_navigationBar.isHidden = true
view.backgroundColor = .black
view.addSubview(navBar)
setupPlayerUI()
navBar.snp.makeConstraints { make in
make.left.right.equalToSuperview()
make.top.equalToSuperview().offset(k_Height_statusBar())
......@@ -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