Commit 7e28f310 authored by CZ1004's avatar CZ1004

【优化】优化首页,修复BUG

parent 3c8b6e2a
{
"images" : [
{
"filename" : "img_photo__home_defpage.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "img_photo__home_defpage@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "img_photo__home_defpage@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
{
"images" : [
{
"filename" : "img_vedio_defpage.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "img_vedio_defpage@2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "img_vedio_defpage@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
......@@ -15,21 +15,8 @@
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
<rect key="frame" x="0.0" y="0.0" width="393" height="852"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="img_star_start_2.png" translatesAutoresizingMaskIntoConstraints="NO" id="Whq-17-MfS">
<rect key="frame" x="86.333333333333329" y="305.66666666666669" width="188.33333333333337" height="188.66666666666669"/>
<constraints>
<constraint firstAttribute="width" secondItem="Whq-17-MfS" secondAttribute="height" multiplier="1:1" id="KvZ-kq-6Du"/>
</constraints>
</imageView>
</subviews>
<viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/>
<color key="backgroundColor" red="0.0" green="0.50980392156862742" blue="1" alpha="1" colorSpace="calibratedRGB"/>
<constraints>
<constraint firstItem="Whq-17-MfS" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="centerY" constant="-26" id="eUc-AI-tgC"/>
<constraint firstItem="Whq-17-MfS" firstAttribute="width" secondItem="Ze5-6b-2t3" secondAttribute="width" multiplier="0.48" id="yGe-jC-RdK"/>
<constraint firstItem="Whq-17-MfS" firstAttribute="centerX" secondItem="Ze5-6b-2t3" secondAttribute="centerX" constant="-16" id="zVN-dN-0aT"/>
</constraints>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
......@@ -37,7 +24,4 @@
<point key="canvasLocation" x="52.671755725190835" y="374.64788732394368"/>
</scene>
</scenes>
<resources>
<image name="img_star_start_2.png" width="360" height="360"/>
</resources>
</document>
......@@ -24,7 +24,6 @@ class HomeInfoViewController:BaseViewController {
btn.setTitleColor(UIColor.colorWithHex(hexStr: mColor), for: .normal)
btn.setTitleColor(UIColor.colorWithHex(hexStr: black3Color), for: .selected)
btn.titleLabel?.font = UIFont.systemFont(ofSize: 14, weight: .bold)
btn.addTarget(self, action: #selector(seletedAllBtnClick), for: .touchUpInside)
btn.layer.cornerRadius = btn.height / 2
btn.layer.masksToBounds = true
......@@ -103,6 +102,8 @@ class HomeInfoViewController:BaseViewController {
UserDefaults.standard.set(times, forKey: "saveAdvTimes")
}
}
setDefaultPage()
}
}
......@@ -142,7 +143,9 @@ class HomeInfoViewController:BaseViewController {
}
}else {
// 如果小于直接删除
deleteOp(imgs: array as! [AssetModel],isAfterAdv: false)
HomePayViewController.show {
deleteOp(imgs: array as! [AssetModel],isAfterAdv: false)
}
}
}else{
......@@ -169,7 +172,9 @@ class HomeInfoViewController:BaseViewController {
}
}else{
// 如果只是一张,直接删除
deleteOp(imgs: array as! [AssetModel],isAfterAdv: false)
HomePayViewController.show {
deleteOp(imgs: array as! [AssetModel],isAfterAdv: false)
}
}
}
}
......@@ -200,12 +205,20 @@ class HomeInfoViewController:BaseViewController {
}
}else {
deleteOp(imgs: array as! [AssetModel],isAfterAdv: false)
}
}
return sview
}()
lazy var defaultImageView : UIImageView = {
let defaultImageView = UIImageView()
defaultImageView.image = UIImage(named: "img_photo__home_defpage")
defaultImageView.isHidden = true
return defaultImageView
}()
var ids: [[AssetModel]]?
var titleText : String?
......@@ -243,7 +256,34 @@ class HomeInfoViewController:BaseViewController {
seletedAllBtn.centerY = navCenterY
titleView.addSubview(seletedAllBtn)
view.addSubview(tablewView)
view.addSubview(self.defaultImageView)
self.defaultImageView.snp.makeConstraints { make in
make.width.height.equalTo(180)
make.top.equalTo(292)
make.centerX.equalToSuperview()
}
setDefaultPage()
}
//设置空白页
func setDefaultPage(){
DispatchQueue.main.async {
if self.ids?.count == 0 {
if self.type == .SimilarVideos{
self.defaultImageView.image = UIImage(named: "img_vedio_defpage")
}else {
self.defaultImageView.image = UIImage(named: "img_photo__home_defpage")
}
self.defaultImageView.isHidden = false
self.seletedAllBtn.isHidden = true
}else{
self.defaultImageView.isHidden = true
self.seletedAllBtn.isHidden = false
}
}
}
@objc func seletedAllBtnClick() {
......
......@@ -67,6 +67,13 @@ class HomePhotosDetailViewController : BaseViewController {
}
}
lazy var defaultImageView : UIImageView = {
let defaultImageView = UIImageView()
defaultImageView.image = UIImage(named: "img_photo__home_defpage")
defaultImageView.isHidden = true
return defaultImageView
}()
lazy var collectionView:UICollectionView = {
......@@ -126,6 +133,7 @@ class HomePhotosDetailViewController : BaseViewController {
UIView.transition(with: self.collectionView, duration: 0.3, options: .transitionCrossDissolve, animations: {
self.collectionView.reloadData()
}, completion: nil)
if self.selectedModel.count > 0 {
self.deleteButton.backgroundColor = UIColor(red: 0, green: 0.51, blue: 1, alpha: 1)
......@@ -147,9 +155,35 @@ class HomePhotosDetailViewController : BaseViewController {
make.height.equalTo(46)
}
self.view.addSubview(self.defaultImageView)
self.defaultImageView.snp.makeConstraints { make in
make.width.height.equalTo(180)
make.top.equalTo(292)
make.centerX.equalToSuperview()
}
setDefaultPage()
}
//设置空白页
func setDefaultPage(){
DispatchQueue.main.async {
if self.resourceData.count == 0 {
self.defaultImageView.isHidden = false
self.currentHeaderView?.btnView.isHidden = true
self.videoDetailNavView?.seletedAllBtn.isHidden = true
self.deleteButton.isHidden = true
}else{
self.defaultImageView.isHidden = true
self.currentHeaderView?.btnView.isHidden = false
self.videoDetailNavView?.seletedAllBtn.isHidden = false
self.deleteButton.isHidden = false
}
}
}
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .white
......@@ -411,7 +445,9 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
}
}else {
// 如果小于直接删除
deleteAction(count: self.selectedModel.count,isAfterAdv: false)
HomePayViewController.show {
self.deleteAction(count: self.selectedModel.count,isAfterAdv: false)
}
}
}else{
......@@ -438,7 +474,9 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
}
}else{
// 如果只是一张,直接删除
deleteAction(count: self.selectedModel.count,isAfterAdv: false)
HomePayViewController.show {
self.deleteAction(count: self.selectedModel.count,isAfterAdv: false)
}
}
}
}
......@@ -454,7 +492,7 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
}
}
}else{
deleteAction(count: self.selectedModel.count,isAfterAdv: false)
self.deleteAction(count: self.selectedModel.count,isAfterAdv: false)
}
......@@ -527,10 +565,10 @@ extension HomePhotosDetailViewController:WaterfallMutiSectionDelegate,UICollecti
self.deleteButton.setTitle("Delete", for: .normal)
UIView.transition(with: self.collectionView, duration: 0.3, options: .transitionCrossDissolve, animations: {
self.collectionView.reloadData()
self.collectionView.reloadSections(IndexSet(integer: 0))
}, completion: nil)
}
setDefaultPage()
}
......
......@@ -96,6 +96,13 @@ class HomeVideoDetailController :BaseViewController {
return view
}()
lazy var defaultImageView : UIImageView = {
let defaultImageView = UIImageView()
defaultImageView.image = UIImage(named: "img_vedio_defpage")
defaultImageView.isHidden = true
return defaultImageView
}()
func setUI(){
videoDetailNavView = VideoDetaiNavView(frame: CGRect(x: 0, y: 0, width: self.view.width, height: statusBarHeight + 44))
......@@ -139,6 +146,13 @@ class HomeVideoDetailController :BaseViewController {
make.right.equalToSuperview().offset(-15)
make.height.equalTo(46)
}
self.view.addSubview(self.defaultImageView)
self.defaultImageView.snp.makeConstraints { make in
make.width.height.equalTo(180)
make.top.equalTo(292)
make.centerX.equalToSuperview()
}
setDefaultPage()
}
......@@ -355,7 +369,9 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
}
}else {
// 如果小于直接删除
deleteAction(count: self.selectedModel.count,isAfterAdv: false)
HomePayViewController.show {
self.deleteAction(count: self.selectedModel.count,isAfterAdv: false)
}
}
}else{
......@@ -382,11 +398,11 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
}
}else{
// 如果只是一张,直接删除
deleteAction(count: self.selectedModel.count,isAfterAdv: false)
HomePayViewController.show {
self.deleteAction(count: self.selectedModel.count,isAfterAdv: false)
}
}
}
}
view.deleteButtonClickCallback = {isMore,deleteCount in
if isMore == true {
......@@ -400,7 +416,7 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
}
}
}else{
deleteAction(count: self.selectedModel.count,isAfterAdv: false)
self.deleteAction(count: self.selectedModel.count,isAfterAdv: false)
}
}
......@@ -444,6 +460,22 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
}
}
func setDefaultPage(){
DispatchQueue.main.async {
if self.resourceData.count == 0 {
self.defaultImageView.isHidden = false
self.currentHeaderView?.btnView.isHidden = true
self.videoDetailNavView?.seletedAllBtn.isHidden = true
self.deleteButton.isHidden = true
}else{
self.defaultImageView.isHidden = true
self.currentHeaderView?.btnView.isHidden = false
self.videoDetailNavView?.seletedAllBtn.isHidden = false
self.deleteButton.isHidden = false
}
}
}
func updateCurrentPageWhenDeleteAny(){
for item in self.selectedModel {
......@@ -474,6 +506,8 @@ extension HomeVideoDetailController:WaterfallMutiSectionDelegate,UICollectionVie
self.collectionView.reloadData()
}, completion: nil)
}
setDefaultPage()
}
......
......@@ -31,8 +31,27 @@ class HomeViewController:BaseViewController {
case 1:
DispatchQueue.main.async { [weak self] in
guard let self else {return}
let vc:SecretViewController = SecretViewController()
self.navigationController?.pushViewController(vc, animated: true)
// 这里需要看下是否需要PIN验证
let pass = UserDefaults.standard.object(forKey: SecretViewController.psKey) as? String ?? ""
if pass.count > 2{
let set = SecretSetViewController()
set.secretType = .verify
set.modalPresentationStyle = .fullScreen
self.present(set, animated: true)
set.Callback = {[weak self] su in
guard let self else {return}
set.dismiss(animated: true)
let vc:SecretViewController = SecretViewController()
self.navigationController?.pushViewController(vc, animated: true)
}
}else {
let vc:SecretViewController = SecretViewController()
self.navigationController?.pushViewController(vc, animated: true)
}
//
// let vc:SecretViewController = SecretViewController()
// self.navigationController?.pushViewController(vc, animated: true)
}
case 2 :
DispatchQueue.main.async {[weak self] in
......@@ -47,6 +66,8 @@ class HomeViewController:BaseViewController {
}
lazy var imageView : UIImageView = {
let imageView = UIImageView()
imageView.image = UIImage(named: "img_bj_home")
......@@ -191,6 +212,10 @@ class HomeViewController:BaseViewController {
}
})
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// 总数据 文件数量和文件大小
PhotoAndVideoMananger.mananger.fetchAllFile {[weak self] index, FileSize in
......@@ -210,23 +235,31 @@ class HomeViewController:BaseViewController {
}
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// 可能是删除数据,重新获取下
PhotoDataManager.manager.loadFromFileSystem(resultModel: {[weak self] model in
DispatchQueue.main.async {
self?.homeView?.model = model
if let collectionView = self?.homeView?.collectionView {
UIView.transition(with: collectionView, duration: 0.3, options: .transitionCrossDissolve, animations: {
collectionView.reloadData()
}, completion: nil)
for section in 0..<collectionView.numberOfSections {
for item in 0..<collectionView.numberOfItems(inSection: section) {
if section == 0 || section == 1 {
if let cell = collectionView.cellForItem(at: IndexPath(row: item, section: section)) as? HomeTitleCollectionCell {
UIView.transition(with: cell.collectionView!, duration: 0.3, options: .transitionCrossDissolve, animations: {
cell.collectionView?.reloadData()
}, completion: nil)
}
}else{
UIView.transition(with:collectionView, duration: 0.3, options: .transitionCrossDissolve, animations: {
self?.homeView?.collectionView.reloadItems(at: [IndexPath(row: item, section: section)])
}, completion: nil)
}
}
}
}
}
})
}
override func viewDidAppear(_ animated: Bool) {
......
......@@ -155,13 +155,21 @@ class HomeInfoView :UIView{
smodel2.isSeleted = isSeleted
}
}
}
tableView.reloadSections(IndexSet(integer: 0), with: .automatic)
// 设置头部的统计数量
setTitleView()
for section in 0..<self.tableView.numberOfSections {
for item in 0..<self.tableView.numberOfRows(inSection: section) {
if let cell = self.tableView.cellForRow(at: IndexPath(row: item, section: section)) as? HomeInfoTableViewCell {
UIView.transition(with: cell.collectionView!, duration: 0.3, options: .transitionCrossDissolve, animations: {
cell.collectionView?.reloadData()
}, completion: nil)
}
}
}
}
func getSelectedArray() -> [AssetModel] {
......
......@@ -28,20 +28,7 @@ class HomeView:UIView {
var otherItemCallBack : (HomePhotosModel,Int)->Void = {data,otherCellRow in}
var model:PhotosManagerModel? {
didSet {
guard model != nil else {return}
DispatchQueue.main.async {[weak self] in
guard let self else {return}
// self.collectionView.reloadData()
}
}
}
var model:PhotosManagerModel?
lazy var collectionView:UICollectionView = {
......@@ -73,8 +60,6 @@ class HomeView:UIView {
super.init(frame: frame)
setData()
setupUI()
}
......@@ -82,30 +67,6 @@ class HomeView:UIView {
fatalError("init(coder:) has not been implemented")
}
func reload(type:PhotsFileType) {
var indexPath : IndexPath
if type == .duplicates {
indexPath = IndexPath(row: 0, section: 0)
}else if type == .similar{
indexPath = IndexPath(row: 1, section: 0)
}else if type == .videos{
indexPath = IndexPath(row: 0, section: 1)
}
DispatchQueue.main.async {[weak self] in
guard let self else {return}
self.collectionView.reloadData()
}
}
func setTitle() {
DispatchQueue.main.async {[weak self] in
......@@ -117,39 +78,6 @@ class HomeView:UIView {
}
func refreshData(model:PhotosManagerModel) {
if self.model == nil {
DispatchQueue.main.async {[weak self] in
guard let self else {return}
self.homeHeader?.setFileAndCount(count: model.allFileNumber, fileSize: model.allFileSize)
self.collectionView.reloadData()
}
}else {
DispatchQueue.main.async {[weak self] in
guard let self else {return}
self.homeHeader?.setFileAndCount(count: model.allFileNumber, fileSize: model.allFileSize)
self.collectionView.reloadData()
}
}
self.model = model
}
func setData() {
}
private func setupUI() {
backgroundColor = .clear
......@@ -198,9 +126,6 @@ class HomeView:UIView {
make.width.equalToSuperview().offset(-2 * marginLR)
make.bottom.equalToSuperview().offset( -homeTabbarView!.height - 16)
}
// collectionView.contentInset = UIEdgeInsets(top: homeTabbarView!.height + 49, left: 0, bottom: homeTabbarView!.height + 16, right: 0)
}
func etCell(indexPath: IndexPath) -> UICollectionViewCell {
......@@ -255,6 +180,13 @@ extension HomeView:WaterfallMutiSectionDelegate,UICollectionViewDataSource,UICol
}else{
self.similarHeadCell = cell
}
if cell.model?.assets.count ?? 0 > 0 {
cell.fileLabel?.isHidden = false
}else{
cell.fileLabel?.isHidden = true
}
return cell
case 1:
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: HomeOtherCollectionCell.identifier, for: indexPath) as! HomeOtherCollectionCell
......@@ -279,7 +211,14 @@ extension HomeView:WaterfallMutiSectionDelegate,UICollectionViewDataSource,UICol
let model = model?.titleModelArray[indexPath.row]
return (model?.assets.first?.count ?? 0) > 2 ? ((collection.width - marginLR - 20) / 2.5) + 64 : ((collection.width - 2 * marginLR - 10) / 2) + 64
if model?.assets.count ?? 0 > 0 {
return (model?.assets.first?.count ?? 0) > 2 ? ((collection.width - marginLR - 20) / 2.5) + 64 : ((collection.width - 2 * marginLR - 10) / 2) + 64
}else{
return 52
}
}else {
let model = model?.otherModelArray[indexPath.row]
......
......@@ -14,7 +14,7 @@ class HomeInfoTableViewCell:UITableViewCell {
private var backView:UIView?
private var collectionView: UICollectionView?
var collectionView: UICollectionView?
private var numberLabel:UILabel?
......@@ -112,8 +112,10 @@ class HomeInfoTableViewCell:UITableViewCell {
collectionView?.x = (backView?.x ?? 0) + marginLR
collectionView?.y = (backView?.y ?? 0) + (backView?.height ?? 0) - (collectionView?.height ?? 0) - 16
self.collectionView?.reloadData()
UIView.transition(with: collectionView!, duration: 0.3, options: .transitionCrossDissolve, animations: {
self.collectionView?.reloadData()
}, completion: nil)
}
}
......
......@@ -27,7 +27,7 @@ class HomeVideoDetailCell : UICollectionViewCell {
// 允许从iCloud请求
options.isNetworkAccessAllowed = true
// 异步请求
options.isSynchronous = true
options.isSynchronous = false
// 从 PHAsset 获取 AVAsset
if let videoAsset = PhotoAndVideoMananger.mananger.getPHAsssetwithID(ids: [resourceIdent!.localIdentifier]){
// 使用requestImageForAsset方法请求视频的第一帧图片
......
......@@ -33,13 +33,14 @@ class LauchVC:UIViewController {
backView.addSubview(LaunchingLoop)
LaunchingView.snp.makeConstraints { make in
make.centerX.equalToSuperview()
make.centerY.equalToSuperview().offset(-80)
make.width.equalToSuperview().offset(-20)
make.height.equalTo(LaunchingView.snp.width).multipliedBy(276/504.0)
make.centerY.equalToSuperview().offset(-140 * RScreenH())
make.width.equalToSuperview()
make.height.equalTo(LaunchingView.snp.width)
}
LaunchingLoop.snp.makeConstraints { make in
make.left.right.equalToSuperview()
make.centerY.equalToSuperview().offset(80)
make.centerX.equalToSuperview()
make.width.height.equalTo(200)
make.bottom.equalToSuperview().offset(-60 * RScreenH())
}
DispatchQueue.main.asyncAfter(deadline: .now() + 3, execute: {
var vc:UIViewController?
......
......@@ -29,6 +29,11 @@ class SecretSetViewController: BaseViewController, UITextFieldDelegate {
override func viewDidLoad() {
super.viewDidLoad()
self.titleView.backBtn.setImage(UIImage(named: "ic_close_charging"), for: .normal)
self.titleView.model.isBackBtnShow = true
titleView.model.title = "Secret Library"
titleView.titleLabel.textColor = .black
titleView.titleLabel.textAlignment = .left
......@@ -40,7 +45,7 @@ class SecretSetViewController: BaseViewController, UITextFieldDelegate {
override func close(animation: Bool = true) {
if secretType == .verify {
self.navigationController?.popToRootViewController(animated: true)
self.dismiss(animated: true)
return
}
Callback(false)
......@@ -63,6 +68,11 @@ class SecretSetViewController: BaseViewController, UITextFieldDelegate {
}else{
if secretType == .del {
UserDefaults.standard.set("", forKey: SecretViewController.psKey)
let alert = UIAlertController(title: nil, message: "The PIN has been deleted", preferredStyle: .alert)
self.present(alert, animated: true)
DispatchQueue.main.asyncAfter(deadline: .now() + 1.5) {
alert.dismiss(animated: true)
}
}
}
}else{
......@@ -78,7 +88,7 @@ class SecretSetViewController: BaseViewController, UITextFieldDelegate {
DispatchQueue.main.asyncAfter(deadline: .now() + 1.5) {
alert.dismiss(animated: true) {
self.Callback(true)
self.navigationController?.popViewController(animated: true)
self.dismiss(animated: true)
}
}
}
......@@ -90,8 +100,16 @@ class SecretSetViewController: BaseViewController, UITextFieldDelegate {
}
return
}
Callback(true)
self.navigationController?.popViewController(animated: true)
UserDefaults.standard.set("", forKey: SecretViewController.psKey)
let alert = UIAlertController(title: nil, message: "Unlocked", preferredStyle: .alert)
self.present(alert, animated: true)
DispatchQueue.main.asyncAfter(deadline: .now() + 1.5) {
alert.dismiss(animated: true){
self.Callback(true)
self.dismiss(animated: true)
}
}
}
}
}
......
......@@ -22,7 +22,7 @@ class SecretViewController: BaseViewController {
/** 首次显示 */
private var isShow:Bool {
get {
guard let show = UserDefaults.standard.object(forKey: "SecretFirstShow") else {
guard UserDefaults.standard.object(forKey: "SecretFirstShow") != nil else {
UserDefaults.standard.set("1", forKey: "SecretFirstShow")
return false
}
......@@ -54,16 +54,17 @@ class SecretViewController: BaseViewController {
super.viewDidLoad()
_ = Resource.isDirect()
if isShow {
if pass.count > 2 {
let set = SecretSetViewController()
set.secretType = .verify
set.Callback = {[weak self] su in
self?.ShowUI()
}
self.navigationController?.pushViewController(set, animated: true)
}else{
self.ShowUI()
}
// if pass.count > 2 {
// let set = SecretSetViewController()
// set.secretType = .verify
// set.Callback = {[weak self] su in
// self?.ShowUI()
// }
// self.navigationController?.pushViewController(set, animated: true)
// }else{
// self.ShowUI()
// }
self.ShowUI()
}else{
let alert = SecretAlert()
titleView.isHidden = true
......@@ -73,9 +74,12 @@ class SecretViewController: BaseViewController {
let set = SecretSetViewController()
set.secretType = .create
set.Callback = { su in
set.dismiss(animated: true)
self?.ShowUI()
}
self?.navigationController?.pushViewController(set, animated: true)
set.modalPresentationStyle = .fullScreen
self?.present(set, animated: true)
// self?.navigationController?.pushViewController(set, animated: true)
}else{
self?.ShowUI()
}
......@@ -135,14 +139,22 @@ class SecretViewController: BaseViewController {
if pass.count > 2 {
let set = SecretSetViewController()
set.secretType = .del
self.navigationController?.pushViewController(set, animated: true)
// self.navigationController?.pushViewController(set, animated: true)
set.Callback = { cr in
set.dismiss(animated: true)
}
set.modalPresentationStyle = .fullScreen
self.present(set, animated: true)
}else{
let set = SecretSetViewController()
set.secretType = .create
set.Callback = { cr in
set.dismiss(animated: true)
}
self.navigationController?.pushViewController(set, animated: true)
// self.navigationController?.pushViewController(set, animated: true)
set.modalPresentationStyle = .fullScreen
self.present(set, animated: true)
}
}
......
......@@ -321,6 +321,7 @@ class PhotoAndVideoMananger {
let targetSize = CGSize(width: 400, height: 400)
let options = PHImageRequestOptions()
options.isSynchronous = true
options.deliveryMode = .opportunistic
options.isNetworkAccessAllowed = true
imageManager.requestImage(for: asset, targetSize: targetSize, contentMode: .aspectFill, options: options) { result, _ in
image = result
......@@ -829,7 +830,7 @@ class PhotoAndVideoMananger {
}
var finalData : [[AssetModel]] = []
// 按照大小排序下
data = data.sorted{ $0.assetSize < $1.assetSize }
data = data.sorted{ $0.assetSize > $1.assetSize }
finalData.append(data)
completionHandler(finalData)
}
......@@ -847,6 +848,8 @@ class PhotoAndVideoMananger {
data.append(AssetModel(localIdentifier: item.localIdentifier, assetSize: self.findAssetSize(asset: item), createDate: item.creationDate!))
}
var finalData : [[AssetModel]] = []
// 排序,从大到小
data = data.sorted{ $0.assetSize > $1.assetSize }
finalData.append(data)
completionHandler(finalData)
}
......@@ -855,7 +858,7 @@ class PhotoAndVideoMananger {
// MARK: - 处理截图数据-------------------------------------------------------
// MARK: - 处理照片数据-------------------------------------------------------
// MARK: - 处理照片数据------------------------- ------------------------------
func dealImageAssetData(completionHandler:@escaping ([[AssetModel]])->Void){
DispatchQueue.global().async {
var data:[AssetModel] = []
......@@ -863,6 +866,8 @@ class PhotoAndVideoMananger {
data.append(AssetModel(localIdentifier: item.localIdentifier, assetSize: self.findAssetSize(asset: item), createDate: item.creationDate!))
}
var finalData : [[AssetModel]] = []
// 排序,从大到小
data = data.sorted{ $0.assetSize > $1.assetSize }
finalData.append(data)
completionHandler(finalData)
}
......@@ -886,7 +891,7 @@ class PhotoAndVideoMananger {
// 允许从iCloud请求
options.isNetworkAccessAllowed = true
// 异步请求
options.isSynchronous = true
options.isSynchronous = false
// 从 PHAsset 获取 AVAsset
if let videoAsset = PhotoAndVideoMananger.mananger.getPHAsssetwithID(ids: [ident.localIdentifier]){
// 使用requestImageForAsset方法请求视频的第一帧图片
......@@ -919,7 +924,7 @@ class PhotoAndVideoMananger {
semaphore.signal()
}
if let data = imageData {
let hash = Insecure.MD5.hash(data: data)
let hash = SHA256.hash(data: data)
hashString = hash.compactMap { String(format: "%02x", $0) }.joined()
}
}
......
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