对b面的再优化,进度条适用范围调整
This commit is contained in:
parent
88bf10f284
commit
c69dc5411c
@ -1542,9 +1542,9 @@
|
|||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||||
CODE_SIGN_IDENTITY = "Apple Development";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Manual;
|
||||||
CURRENT_PROJECT_VERSION = 4;
|
CURRENT_PROJECT_VERSION = 1.0.4.1;
|
||||||
DEVELOPMENT_TEAM = T93S37G27F;
|
DEVELOPMENT_TEAM = "";
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
INFOPLIST_FILE = relax.offline.mp3.music/Info.plist;
|
INFOPLIST_FILE = relax.offline.mp3.music/Info.plist;
|
||||||
INFOPLIST_KEY_CFBundleDisplayName = Musiclax;
|
INFOPLIST_KEY_CFBundleDisplayName = Musiclax;
|
||||||
@ -1561,7 +1561,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.3;
|
MARKETING_VERSION = 1.0.4;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = relax.offline.mp3.music;
|
PRODUCT_BUNDLE_IDENTIFIER = relax.offline.mp3.music;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
@ -1582,9 +1582,9 @@
|
|||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||||
CODE_SIGN_IDENTITY = "Apple Development";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Manual;
|
||||||
CURRENT_PROJECT_VERSION = 4;
|
CURRENT_PROJECT_VERSION = 1.0.4.1;
|
||||||
DEVELOPMENT_TEAM = T93S37G27F;
|
DEVELOPMENT_TEAM = "";
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
INFOPLIST_FILE = relax.offline.mp3.music/Info.plist;
|
INFOPLIST_FILE = relax.offline.mp3.music/Info.plist;
|
||||||
INFOPLIST_KEY_CFBundleDisplayName = Musiclax;
|
INFOPLIST_KEY_CFBundleDisplayName = Musiclax;
|
||||||
@ -1601,7 +1601,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.3;
|
MARKETING_VERSION = 1.0.4;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = relax.offline.mp3.music;
|
PRODUCT_BUNDLE_IDENTIFIER = relax.offline.mp3.music;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
|
|||||||
@ -101,12 +101,22 @@ class MPPositive_PlayerViewController: MPPositive_BaseViewController, UIViewCont
|
|||||||
btn.addTarget(self, action: #selector(nextClick(_ :)), for: .touchUpInside)
|
btn.addTarget(self, action: #selector(nextClick(_ :)), for: .touchUpInside)
|
||||||
return btn
|
return btn
|
||||||
}()
|
}()
|
||||||
|
//上一首
|
||||||
private lazy var perviousBtn:UIButton = {
|
private lazy var perviousBtn:UIButton = {
|
||||||
let btn = UIButton()
|
let btn = UIButton()
|
||||||
btn.setBackgroundImage(UIImage(named: "Player_Pervious'logo"), for: .normal)
|
btn.setBackgroundImage(UIImage(named: "Player_Pervious'logo"), for: .normal)
|
||||||
btn.addTarget(self, action: #selector(previousClick(_ :)), for: .touchUpInside)
|
btn.addTarget(self, action: #selector(previousClick(_ :)), for: .touchUpInside)
|
||||||
return btn
|
return btn
|
||||||
}()
|
}()
|
||||||
|
//活动加载器
|
||||||
|
private lazy var activityIndicator:UIActivityIndicatorView = {
|
||||||
|
let activityIndicator:UIActivityIndicatorView = .init(frame: .init(x: 0, y: 0, width: 66*width, height: 66*width))
|
||||||
|
activityIndicator.backgroundColor = .white
|
||||||
|
activityIndicator.layer.masksToBounds = true
|
||||||
|
activityIndicator.layer.cornerRadius = 33*width
|
||||||
|
activityIndicator.color = .black
|
||||||
|
return activityIndicator
|
||||||
|
}()
|
||||||
//封面View(封面,标题,副标题,收藏,下载,进度条View)
|
//封面View(封面,标题,副标题,收藏,下载,进度条View)
|
||||||
private lazy var coverView:MPPositive_PlayerCoverView = .init(frame: .init(x: 0, y: 0, width: screen_Width, height: 480*width))
|
private lazy var coverView:MPPositive_PlayerCoverView = .init(frame: .init(x: 0, y: 0, width: screen_Width, height: 480*width))
|
||||||
//歌词View
|
//歌词View
|
||||||
@ -279,6 +289,12 @@ class MPPositive_PlayerViewController: MPPositive_BaseViewController, UIViewCont
|
|||||||
make.centerX.equalToSuperview()
|
make.centerX.equalToSuperview()
|
||||||
make.centerY.equalToSuperview().multipliedBy(1.1)
|
make.centerY.equalToSuperview().multipliedBy(1.1)
|
||||||
}
|
}
|
||||||
|
bottomView.addSubview(activityIndicator)
|
||||||
|
activityIndicator.snp.makeConstraints { make in
|
||||||
|
make.center.equalTo(playBtn)
|
||||||
|
make.width.height.equalTo(playBtn)
|
||||||
|
}
|
||||||
|
activityIndicator.startAnimating()
|
||||||
bottomView.addSubview(listBtn)
|
bottomView.addSubview(listBtn)
|
||||||
listBtn.snp.makeConstraints { make in
|
listBtn.snp.makeConstraints { make in
|
||||||
make.right.equalToSuperview().offset(-20*width)
|
make.right.equalToSuperview().offset(-20*width)
|
||||||
|
|||||||
@ -9,7 +9,7 @@ import UIKit
|
|||||||
///b面播放器进度条(展示缓存效果,聚焦时进行尺寸变化)
|
///b面播放器进度条(展示缓存效果,聚焦时进行尺寸变化)
|
||||||
class MPPositive_PlayerSilder: UISlider {
|
class MPPositive_PlayerSilder: UISlider {
|
||||||
/// 触控扩展边距
|
/// 触控扩展边距
|
||||||
var hitTestEdgeInsets: UIEdgeInsets = UIEdgeInsets(top: -20, left: -20, bottom: -20, right: -20)
|
var hitTestEdgeInsets: UIEdgeInsets = UIEdgeInsets(top: -20*width, left: 0, bottom: -20*width, right: 0)
|
||||||
/// 原始的Slider大小
|
/// 原始的Slider大小
|
||||||
var originalFrame: CGRect?
|
var originalFrame: CGRect?
|
||||||
//滑块图片
|
//滑块图片
|
||||||
@ -29,11 +29,11 @@ class MPPositive_PlayerSilder: UISlider {
|
|||||||
override init(frame:CGRect) {
|
override init(frame:CGRect) {
|
||||||
super.init(frame: frame)
|
super.init(frame: frame)
|
||||||
setUpLayout()
|
setUpLayout()
|
||||||
|
print("调整Slider大小")
|
||||||
|
originalFrame = self.frame
|
||||||
}
|
}
|
||||||
override func awakeFromNib() {
|
override func awakeFromNib() {
|
||||||
super.awakeFromNib()
|
super.awakeFromNib()
|
||||||
print("调整Slider大小")
|
|
||||||
originalFrame = self.frame
|
|
||||||
}
|
}
|
||||||
|
|
||||||
required init?(coder: NSCoder) {
|
required init?(coder: NSCoder) {
|
||||||
@ -136,11 +136,55 @@ class MPPositive_PlayerSilder: UISlider {
|
|||||||
override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
|
override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
|
||||||
//对Slider添加一个边距范围
|
//对Slider添加一个边距范围
|
||||||
let largerFrame: CGRect = self.bounds.inset(by: hitTestEdgeInsets)
|
let largerFrame: CGRect = self.bounds.inset(by: hitTestEdgeInsets)
|
||||||
//检索当前点击点是否在边距范围内
|
|
||||||
let isInside = largerFrame.contains(point)
|
|
||||||
|
|
||||||
return true
|
return largerFrame.contains(point)
|
||||||
|
}
|
||||||
|
//手势开始时
|
||||||
|
override func beginTracking(_ touch: UITouch, with event: UIEvent?) -> Bool {
|
||||||
|
let tracking = super.beginTracking(touch, with: event)
|
||||||
|
if tracking == true {
|
||||||
|
//增加高度
|
||||||
|
focusOnSlider(true)
|
||||||
|
}else {
|
||||||
|
let touchPoint = touch.location(in: self)
|
||||||
|
// 寻找触摸点在滑动条上的位置所占的相对比例
|
||||||
|
let value = self.minimumValue + Float(touchPoint.x / self.bounds.width) * (self.maximumValue - self.minimumValue)
|
||||||
|
// 更新滑块位置
|
||||||
|
self.setValue(value, animated: false)
|
||||||
|
//让播放器恢复状态
|
||||||
|
MP_PlayerManager.shared.setEditProgressEnd(value)
|
||||||
|
}
|
||||||
|
return tracking
|
||||||
|
}
|
||||||
|
//手势途中
|
||||||
|
override func continueTracking(_ touch: UITouch, with event: UIEvent?) -> Bool {
|
||||||
|
//继续滑动
|
||||||
|
return super.continueTracking(touch, with: event)
|
||||||
|
}
|
||||||
|
//手势继续
|
||||||
|
override func endTracking(_ touch: UITouch?, with event: UIEvent?) {
|
||||||
|
super.endTracking(touch, with: event)
|
||||||
|
// 手势结束时恢复高度
|
||||||
|
focusOnSlider(false)
|
||||||
|
}
|
||||||
|
//手势取消
|
||||||
|
override func cancelTracking(with event: UIEvent?) {
|
||||||
|
super.cancelTracking(with: event)
|
||||||
|
// 手势取消时恢复高度
|
||||||
|
focusOnSlider(false)
|
||||||
}
|
}
|
||||||
//当用户焦点汇聚到slider
|
//当用户焦点汇聚到slider
|
||||||
|
private func focusOnSlider(_ focusing:Bool) {
|
||||||
|
guard let originalFrame = originalFrame else { return }
|
||||||
|
//动画修改Slider高度
|
||||||
|
UIView.animate(withDuration: 0.3) {
|
||||||
|
if focusing {
|
||||||
|
//聚焦状态,增加slider高度
|
||||||
|
self.transform = CGAffineTransform(scaleX: 1.0, y: 1.5)
|
||||||
|
}else {
|
||||||
|
//失去焦点,恢复原状
|
||||||
|
self.transform = .identity
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user