Commit 36283345 authored by CZ1004's avatar CZ1004

【优化】时间选择器

parent 545b78fb
......@@ -316,17 +316,19 @@ class PhotoRemoveViewController: BaseViewController {
func showTrashView(){
DispatchQueue.main.async {
self.trashSubView.isHidden = false
UIView.animate(withDuration: 0.1) {
UIView.animate(withDuration: 0.2) {
// 更新约束
self.bottomConstraint?.update(offset: 0)
self.view.layoutIfNeeded()
}
}
}
func hideTrashView(){
DispatchQueue.main.async {
UIView.animate(withDuration: 0.1) {
UIView.animate(withDuration: 0.2) {
// 更新约束
self.bottomConstraint?.update(offset: 78 + safeHeight)
self.view.layoutIfNeeded()
}completion: { finished in
self.trashSubView.isHidden = true
}
......@@ -431,9 +433,13 @@ class PhotoRemoveViewController: BaseViewController {
func saveDataToKeepListDB(){
if let type = self.mediaType{
if let dataSg = Singleton.shared.keepList[type]{
var uinqueId = UUID().uuidString
for item in dataSg{
// 如果是视频的话不会进行分组,所以每次传入不同的id组
let uinqueId = UUID().uuidString
if type == .video {
// 如果是视频的话不会进行分组,所以每次传入不同的id
// 重新生成一个
uinqueId = UUID().uuidString
}
let success = GroupDatabase.shared.insert(localIdentifier: item.localIdentifier, assetSize: item.assetSize, createDate: item.createDate, mediaType: type == TrashTypeEnum.video ? 2 : 1,groupId: uinqueId)
if success == false {
Print("保留单利数据到数据库保留列表失败")
......
......@@ -11,7 +11,7 @@ class DateSelectButtonView : UIView {
var closeCallBack : ()->Void = {}
var type : PikerDateType?
var type : PickerDateType?
lazy var dateButton : UIButton = {
let button = UIButton(type: .custom)
......
......@@ -21,15 +21,19 @@ class PhotosRemoveBaseView: UIView {
func reload(index:Int) -> Void {
if let url = url {
self.innerVideoController = VideoViewController()
if let vc = self.innerVideoController {
vc.isAutoPlay = index == 0
vc.url = url
self.imageView.removeFromSuperview()
self.addSubview(vc.view)
vc.view.snp.makeConstraints { make in
make.left.top.bottom.right.equalToSuperview()
if self.innerVideoController == nil {
self.innerVideoController = VideoViewController()
if let vc = self.innerVideoController {
vc.isAutoPlay = index == 0
vc.url = url
self.imageView.removeFromSuperview()
self.addSubview(vc.view)
vc.view.snp.makeConstraints { make in
make.left.top.bottom.right.equalToSuperview()
}
}
}else {
self.innerVideoController?.playerViewController.player?.play()
}
}
}
......@@ -72,7 +76,11 @@ class PhotosRemoveBaseView: UIView {
addSubview(imageView)
leftButton.frame = CGRect(x: 0, y: 0, width: 95, height: 42)
leftButton.center = imageView.center
if self.url != nil {
self.leftButton.center = self.innerVideoController?.view.center ?? imageView.center
}else {
self.leftButton.center = imageView.center
}
leftButton.setTitle("Delete", for: .normal)
leftButton.backgroundColor = UIColor(red: 0.95, green: 0.21, blue: 0.21, alpha: 1)
leftButton.tintColor = .white
......@@ -83,7 +91,11 @@ class PhotosRemoveBaseView: UIView {
rightButton.frame = CGRect(x: 0, y: 0, width: 95, height: 42)
rightButton.center = imageView.center
if self.url != nil {
self.rightButton.center = self.innerVideoController?.view.center ?? imageView.center
}else {
self.rightButton.center = imageView.center
}
rightButton.setTitle("Retain", for: .normal)
rightButton.backgroundColor = UIColor(red: 0.18, green: 0.76, blue: 0.35, alpha: 1)
rightButton.tintColor = .white
......@@ -101,17 +113,24 @@ class PhotosRemoveBaseView: UIView {
}
func showLeftButton() {
self.leftButton.center = imageView.center
UIView.animate(withDuration: 0.2) {
self.leftButton.alpha = 1
self.maskTempleteView.backgroundColor = UIColor(red: 0.95, green: 0.21, blue: 0.21, alpha: 0.4000)
self.addSubview(self.maskTempleteView)
self.rightButton.alpha = 0
if self.url != nil {
self.leftButton.center = self.innerVideoController?.view.center ?? imageView.center
}else {
self.leftButton.center = imageView.center
}
self.leftButton.alpha = 1
self.rightButton.alpha = 0
self.maskTempleteView.backgroundColor = UIColor(red: 0.95, green: 0.21, blue: 0.21, alpha: 0.4000)
self.addSubview(self.maskTempleteView)
}
func showRightButton() {
self.rightButton.center = imageView.center
if self.url != nil {
self.rightButton.center = self.innerVideoController?.view.center ?? imageView.center
}else {
self.rightButton.center = imageView.center
}
UIView.animate(withDuration: 0.2) {
self.rightButton.alpha = 1
self.maskTempleteView.backgroundColor = UIColor(red: 0.26, green: 0.78, blue: 0.41, alpha: 0.4000)
......@@ -121,12 +140,18 @@ class PhotosRemoveBaseView: UIView {
}
func hideButtons() {
UIView.animate(withDuration: 0.2) { [self] in
self.leftButton.alpha = 0
self.rightButton.alpha = 0
self.maskTempleteView.removeFromSuperview()
self.leftButton.center = self.imageView.center
self.rightButton.center = self.imageView.center
if self.url != nil {
self.rightButton.center = self.innerVideoController?.view.center ?? imageView.center
self.leftButton.center = self.innerVideoController?.view.center ?? imageView.center
}else {
self.leftButton.center = self.imageView.center
self.rightButton.center = self.imageView.center
}
}
}
......
......@@ -127,8 +127,8 @@ class ResourceFilterBoxView : UIView {
private func setDefaultDataInPage(){
// 设置按钮
resetByType(date: self.startDate, type: PikerDateType.start)
resetByType(date: self.endDate, type: PikerDateType.end)
resetByType(date: self.startDate, type: PickerDateType.start)
resetByType(date: self.endDate, type: PickerDateType.end)
// 设置选择框
DispatchQueue.main.async {
......@@ -141,7 +141,7 @@ class ResourceFilterBoxView : UIView {
/// - Parameters:
/// - date: 时间
/// - type: 类型
private func resetByType(date:Date?,type:PikerDateType){
private func resetByType(date:Date?,type:PickerDateType){
if let date = date {
let timeNumber = getYearAndMonthFromDate(currentDate: date)
if let year = timeNumber.0{
......@@ -167,13 +167,14 @@ class ResourceFilterBoxView : UIView {
/// - year: 年
/// - month: 月
/// - type: 按钮类型
func resetDateStringFromYearAndMonth(year: Int, month: Int ,type: PikerDateType){
func resetDateStringFromYearAndMonth(year: Int, month: Int ,type: PickerDateType){
DispatchQueue.main.async {
if type == .start {
self.startDateButton.dateButton.setTitle("From \(self.getMonthEn(month: month)) \(year)", for: .normal)
self.startDateButton.closeButton.isHidden = false
self.startDate = self.dateFrom(year: year, month: month)
}else {
// 判断结束时间是否大于开始时间,如果是
self.endDateButton.dateButton.setTitle("To \(self.getMonthEn(month: month)) \(year)", for: .normal)
self.endDateButton.closeButton.isHidden = false
self.endDate = self.lastDayOfMonth(year: year, month: month)
......@@ -214,9 +215,13 @@ class ResourceFilterBoxView : UIView {
self.startDateButton.closeCallBack = {
self.startDate = nil
self.datePicker?.startDate = nil
self.datePicker?.reloadData()
}
self.endDateButton.closeCallBack = {
self.endDate = nil
self.datePicker?.endDate = nil
self.datePicker?.reloadData()
}
self.startDateButton.reSetButtonTitle()
......@@ -348,18 +353,24 @@ class ResourceFilterBoxView : UIView {
popDatePikerView(type: .end)
}
func popDatePikerView(type: PikerDateType){
showDatePicker(type: type)
func popDatePikerView(type: PickerDateType){
showDatePicker(type: type,startDate: self.startDate,endDate: self.endDate)
}
// 显示
func showDatePicker(type: PikerDateType){
func showDatePicker(type: PickerDateType,startDate:Date?,endDate:Date?){
if self.datePicker != nil {
self.datePicker?.type = type
self.datePicker?.startDate = self.startDate
self.datePicker?.endDate = self.endDate
self.datePicker?.reloadData()
return
}
self.datePicker = YearMonthPickerView()
self.datePicker?.type = type
self.datePicker?.startDate = self.startDate
self.datePicker?.endDate = self.endDate
self.datePicker?.backgroundColor = .white
if let window = cWindow,let datePicker = self.datePicker {
let datePickerFrame = CGRect(x: 0, y: window.height, width:window.width, height: 204)
......
......@@ -268,6 +268,8 @@ extension HomeInfoTableViewCell:UICollectionViewDelegate,UICollectionViewDataSou
let vc = PMShowImgVideoController()
if model?.type == .SimilarVideos || model?.type == .videos {
vc.state = .similarVideos
}else if model?.type == .duplicates {
vc.state = .duplicates
}else{
vc.state = .similarPhotos
}
......
......@@ -16,6 +16,8 @@ class PMShowImgVideoController: BaseViewController {
case similarPhotos
// 相似视频
case similarVideos
// 重复项
case duplicates
}
// 资源类型 0-图片 1-视频
......@@ -290,11 +292,9 @@ extension PMShowImgVideoController : UICollectionViewDelegate,UICollectionViewDa
showName.loadPhotoOrVideo { durs, icon in
cell.icon = icon
}
if let data = self.homeDataSource {
cell.bestResultButton.isHidden = indexPath.row != 0 || data.count <= 1
}else{
cell.bestResultButton.isHidden = true
if self.homeDataSource == nil {
cell.selectBtn.isHidden = true
cell.bestResultButton.isHidden = true
}
cell.isCurrent = selectSet.contains(indexPath.row)
cell.callblock = {[weak self] in
......@@ -334,9 +334,7 @@ extension PMShowImgVideoController : UICollectionViewDelegate,UICollectionViewDa
}
}else{
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: PMShowItemCellID, for: indexPath) as! PMShowItemCell
if let data = self.homeDataSource {
}else{
if self.homeDataSource == nil {
cell.selectBtn.isHidden = true
}
showName.loadPhotoOrVideo { duration, icon in
......@@ -349,14 +347,14 @@ extension PMShowImgVideoController : UICollectionViewDelegate,UICollectionViewDa
}
}
if state == .similarPhotos {
if state == .similarPhotos || state == .duplicates {
if collectionView == MaxCollection {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: PMShowImgCellID, for: indexPath) as! PMShowImgCell
cell.icon = self.homeDataSource![indexPath.row].image ?? UIImage()
cell.isCurrent = selectSet.contains(indexPath.row)
if let data = self.homeDataSource {
cell.bestResultButton.isHidden = indexPath.row != 0 || data.count <= 1
cell.bestResultButton.isHidden = indexPath.row != 0 || data.count <= 1 || state == .duplicates
}
cell.callblock = {[weak self] in
guard let self = self else { return }
......
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