空间相册添加全部的筛选项
This commit is contained in:
parent
c9c9fc85de
commit
b6b0f76011
Binary file not shown.
@ -28,7 +28,7 @@ enum SelectedFileType : Int {
|
|||||||
|
|
||||||
class CCSpaceAlbumFliterPopView: UIView {
|
class CCSpaceAlbumFliterPopView: UIView {
|
||||||
|
|
||||||
var selectedFileType:SelectedFileType = .image
|
var selectedFileType:SelectedFileType = .all
|
||||||
|
|
||||||
var allAssetItemModelArr:[CCSpaceAlbumFliterModel] = []
|
var allAssetItemModelArr:[CCSpaceAlbumFliterModel] = []
|
||||||
|
|
||||||
@ -41,9 +41,10 @@ class CCSpaceAlbumFliterPopView: UIView {
|
|||||||
|
|
||||||
lazy var menuView: CCPopMenuView = {
|
lazy var menuView: CCPopMenuView = {
|
||||||
//数据源(icon可不填)
|
//数据源(icon可不填)
|
||||||
let popData = [(icon:"",title:"空间照片"),
|
let popData = [(icon:"",title:"全部"),
|
||||||
(icon:"",title:"空间视频"),
|
(icon:"",title:"空间照片"),
|
||||||
/*(icon:"",title:"全部")*/]
|
(icon:"",title:"空间视频")
|
||||||
|
]
|
||||||
|
|
||||||
//设置参数
|
//设置参数
|
||||||
let parameters:[CCPopMenuConfigure] = [
|
let parameters:[CCPopMenuConfigure] = [
|
||||||
@ -231,45 +232,77 @@ class CCSpaceAlbumFliterPopView: UIView {
|
|||||||
self.listCollectView.reloadData()
|
self.listCollectView.reloadData()
|
||||||
if selectedFileType == .image {
|
if selectedFileType == .image {
|
||||||
let fetchImageResult = PHAsset.fetchAssets(with:.image, options: fetchOptions)
|
let fetchImageResult = PHAsset.fetchAssets(with:.image, options: fetchOptions)
|
||||||
fetchImageResult.enumerateObjects(options: .reverse) { asset, index, stop in
|
fetchImageResult.enumerateObjects(options: .concurrent) { asset, index, stop in
|
||||||
|
self.dealPhoto(asset: asset)
|
||||||
let frameCount = self.getFrameCount(for: asset)
|
|
||||||
if frameCount > 1 {
|
|
||||||
//这里是同步的
|
|
||||||
let imageData = self.getImageData(for: asset)
|
|
||||||
let photoImage:UIImage = UIImage(data: imageData!)!
|
|
||||||
//创建model
|
|
||||||
let model = CCSpaceAlbumFliterModel.initWithAssetType(assetType: AssetType.image, asset: asset,image:photoImage, localIdentifier: asset.localIdentifier)
|
|
||||||
//加入数组
|
|
||||||
self.allAssetItemModelArr.append(model)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
self.listCollectView.reloadData()
|
self.listCollectView.reloadData()
|
||||||
}
|
}
|
||||||
else if selectedFileType == .video {
|
else if selectedFileType == .video {
|
||||||
|
|
||||||
let fetchVideoResult = PHAsset.fetchAssets(with:.video, options: fetchOptions)
|
let fetchVideoResult = PHAsset.fetchAssets(with:.video, options: fetchOptions)
|
||||||
fetchVideoResult.enumerateObjects(options: .reverse) { asset, index, stop in
|
fetchVideoResult.enumerateObjects(options: .concurrent) { asset, index, stop in
|
||||||
|
self.dealVideo(asset: asset)
|
||||||
self.getVideoURL(from: asset) { [self] url, avasset in
|
}
|
||||||
let isSpaceVideo = self.isSpatialVideo(asset:avasset)
|
}
|
||||||
if isSpaceVideo {
|
else if selectedFileType == .all {
|
||||||
let firstFrameImage:UIImage = self.getVideoFirstFrame(url: url)
|
let fetchImageResult = PHAsset.fetchAssets(with:.image, options: fetchOptions)
|
||||||
//创建model
|
let fetchVideoResult = PHAsset.fetchAssets(with:.video, options: fetchOptions)
|
||||||
let model = CCSpaceAlbumFliterModel.initWithAssetType(assetType: AssetType.video, asset: asset,image:firstFrameImage, localIdentifier: asset.localIdentifier)
|
let fetchAllResult:NSMutableArray = NSMutableArray()
|
||||||
//加入数组
|
fetchImageResult.enumerateObjects { asset, index, stop in
|
||||||
self.allAssetItemModelArr.append(model)
|
fetchAllResult.add(asset)
|
||||||
DispatchQueue.main.async { [self] in
|
}
|
||||||
listCollectView.reloadData()
|
|
||||||
}
|
fetchVideoResult.enumerateObjects { asset, index, stop in
|
||||||
|
fetchAllResult.add(asset)
|
||||||
|
}
|
||||||
|
|
||||||
|
fetchAllResult.enumerateObjects(options: .concurrent) { asset, index, stop in
|
||||||
|
if let phasset = asset as? PHAsset{
|
||||||
|
if phasset.mediaType == .image {
|
||||||
|
self.dealPhoto(asset: phasset)
|
||||||
|
}
|
||||||
|
else if phasset.mediaType == .video {
|
||||||
|
self.dealVideo(asset: phasset)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self.listCollectView.reloadData()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
print("sss");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func dealPhoto(asset:PHAsset){
|
||||||
|
let frameCount = self.getFrameCount(for: asset)
|
||||||
|
if frameCount > 1 {
|
||||||
|
//这里是同步的
|
||||||
|
let imageData = self.getImageData(for: asset)
|
||||||
|
let photoImage:UIImage = UIImage(data: imageData!)!
|
||||||
|
//创建model
|
||||||
|
let model = CCSpaceAlbumFliterModel.initWithAssetType(assetType: AssetType.image, asset: asset,image:photoImage, localIdentifier: asset.localIdentifier)
|
||||||
|
//加入数组
|
||||||
|
self.allAssetItemModelArr.append(model)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func dealVideo(asset:PHAsset){
|
||||||
|
self.getVideoURL(from: asset) { [weak self] url, avasset in
|
||||||
|
let isSpaceVideo = self?.isSpatialVideo(asset:avasset)
|
||||||
|
if isSpaceVideo! {
|
||||||
|
let firstFrameImage:UIImage = (self?.getVideoFirstFrame(url: url))!
|
||||||
|
//创建model
|
||||||
|
let model = CCSpaceAlbumFliterModel.initWithAssetType(assetType: AssetType.video, asset: asset,image:firstFrameImage, localIdentifier: asset.localIdentifier)
|
||||||
|
//加入数组
|
||||||
|
self?.allAssetItemModelArr.append(model)
|
||||||
|
DispatchQueue.main.async { [weak self] in
|
||||||
|
self?.listCollectView.reloadData()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//MARK: 检查是否为空间视频
|
//MARK: 检查是否为空间视频
|
||||||
func isSpatialVideo(asset: AVAsset) -> Bool {
|
func isSpatialVideo(asset: AVAsset) -> Bool {
|
||||||
return ZZHHelper.isSpatialVideo(asset: asset)
|
return ZZHHelper.isSpatialVideo(asset: asset)
|
||||||
@ -299,13 +332,13 @@ class CCSpaceAlbumFliterPopView: UIView {
|
|||||||
menuView.didSelectMenuBlock = { [weak self](index:Int)->Void in
|
menuView.didSelectMenuBlock = { [weak self](index:Int)->Void in
|
||||||
print("block select \(index)")
|
print("block select \(index)")
|
||||||
|
|
||||||
if index == 0 {
|
if index == 1 {
|
||||||
//image
|
//image
|
||||||
self?.selectedFileType = .image
|
self?.selectedFileType = .image
|
||||||
}else if index == 1 {
|
}else if index == 2 {
|
||||||
//video
|
//video
|
||||||
self?.selectedFileType = .video
|
self?.selectedFileType = .video
|
||||||
}else if index == 2 {
|
}else if index == 0 {
|
||||||
//all
|
//all
|
||||||
self?.selectedFileType = .all
|
self?.selectedFileType = .all
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user