|
@@ -13,6 +13,7 @@
|
|
|
#import "AJPhotoListCell.h"
|
|
|
#import "uploadFileBottomView.h"
|
|
|
#import "PhotoPreviewViewController.h"
|
|
|
+#import "TZAssetModel+imageData.h"
|
|
|
|
|
|
@interface uploadImageOrVideoViewController ()<AJPhotoGroupViewProtocol,UICollectionViewDataSource,UICollectionViewDelegate,UICollectionViewDelegateFlowLayout>
|
|
|
|
|
@@ -302,7 +303,7 @@
|
|
|
- (void)loadAssets:(TZAlbumModel *)model {
|
|
|
[self.indexPathsForSelectedItems removeAllObjects];
|
|
|
[self.assets removeAllObjects];
|
|
|
-
|
|
|
+
|
|
|
[[TZImageManager manager] getAssetsFromFetchResult:model.result completion:^(NSArray<TZAssetModel *> *models) {
|
|
|
self->_assets = [NSMutableArray arrayWithArray:models];
|
|
|
[self.photoListView scrollRectToVisible:CGRectMake(0, 0, 1, 1) animated:YES];
|
|
@@ -349,103 +350,59 @@
|
|
|
}
|
|
|
|
|
|
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
|
|
|
-// AJPhotoListCell *cell = (AJPhotoListCell *)[self.photoListView cellForItemAtIndexPath:indexPath];
|
|
|
-// ALAsset *asset = self.assets[indexPath.row];
|
|
|
-
|
|
|
PhotoPreviewViewController *vc =[PhotoPreviewViewController new];
|
|
|
vc.assets = _assets;
|
|
|
vc.currentIndex = indexPath.row;
|
|
|
+ vc.indexPathsForSelectedItems = _indexPathsForSelectedItems;
|
|
|
+ vc.maximumNumberOfSelection = _maximumNumberOfSelection;
|
|
|
+ vc.minimumNumberOfSelection = _minimumNumberOfSelection;
|
|
|
[self.navigationController pushViewController:vc animated:YES];
|
|
|
+}
|
|
|
+
|
|
|
+#pragma mark 处理点击选中相关
|
|
|
+- (void)handlCellSelectFunBy:(NSIndexPath *)indexPath
|
|
|
+{
|
|
|
|
|
|
- //相机按钮处理
|
|
|
-// if ([asset isKindOfClass:[UIImage class]] && _delegate && [_delegate respondsToSelector:@selector(photoPickerTapCameraAction:)]) {
|
|
|
-// [_delegate photoPickerTapCameraAction:self];
|
|
|
-// return;
|
|
|
-// }
|
|
|
-
|
|
|
- //单选
|
|
|
-// if (!self.multipleSelection && self.indexPathsForSelectedItems.count==1) {
|
|
|
-// //取消上一个选中
|
|
|
-// NSInteger index = [self.assets indexOfObject:self.indexPathsForSelectedItems[0]];
|
|
|
-// NSIndexPath *indexPath = [NSIndexPath indexPathForItem:index inSection:0];
|
|
|
-// AJPhotoListCell *previousCell = (AJPhotoListCell *)[self.photoListView cellForItemAtIndexPath:indexPath];
|
|
|
-// [previousCell isSelected:NO];
|
|
|
-// [self.indexPathsForSelectedItems removeAllObjects];
|
|
|
-//
|
|
|
-// //选中当前的
|
|
|
-// [self.indexPathsForSelectedItems addObject:asset];
|
|
|
-// [cell isSelected:YES];
|
|
|
-// if (_delegate && [_delegate respondsToSelector:@selector(photoPicker:didDeselectAsset:)])
|
|
|
-// [_delegate photoPicker:self didDeselectAsset:asset];
|
|
|
-// return;
|
|
|
-// }
|
|
|
+ AJPhotoListCell *cell = (AJPhotoListCell *)[self.photoListView cellForItemAtIndexPath:indexPath];
|
|
|
+ TZAssetModel *model = self.assets[indexPath.row];
|
|
|
|
|
|
//超出最大限制
|
|
|
-// if (self.indexPathsForSelectedItems.count >= self.maximumNumberOfSelection && ![self.indexPathsForSelectedItems containsObject:asset]) {
|
|
|
-// if (_delegate && [_delegate respondsToSelector:@selector(photoPickerDidMaximum:)])
|
|
|
-// [_delegate photoPickerDidMaximum:self];
|
|
|
-// return;
|
|
|
-// }
|
|
|
-//
|
|
|
-// //选择过滤
|
|
|
-// BOOL selectable = [self.selectionFilter evaluateWithObject:asset];
|
|
|
-// if (!selectable) {
|
|
|
-// if (_delegate && [_delegate respondsToSelector:@selector(photoPickerDidSelectionFilter:)])
|
|
|
-// [_delegate photoPickerDidSelectionFilter:self];
|
|
|
-// return;
|
|
|
-// }
|
|
|
-//
|
|
|
-// //取消选中
|
|
|
-// if ([self.indexPathsForSelectedItems containsObject:asset]) {
|
|
|
-// [self.indexPathsForSelectedItems removeObject:asset];
|
|
|
-// [cell isSelected:NO];
|
|
|
-// if (_delegate && [_delegate respondsToSelector:@selector(photoPicker:didDeselectAsset:)])
|
|
|
-// [_delegate photoPicker:self didDeselectAsset:asset];
|
|
|
-// return;
|
|
|
-// }
|
|
|
-//
|
|
|
-// //选中
|
|
|
-// [self.indexPathsForSelectedItems addObject:asset];
|
|
|
-// [cell isSelected:YES];
|
|
|
-// if (_delegate && [_delegate respondsToSelector:@selector(photoPicker:didSelectAsset:)])
|
|
|
-// [_delegate photoPicker:self didSelectAsset:asset];
|
|
|
+ if (self.indexPathsForSelectedItems.count >= self.maximumNumberOfSelection ) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ //取消选中
|
|
|
+ if ([self.indexPathsForSelectedItems containsObject:model]) {
|
|
|
+ [self.indexPathsForSelectedItems removeObject:model];
|
|
|
+ model.isSelected = NO;
|
|
|
+ [cell isSelected:NO];
|
|
|
+ }
|
|
|
+ else{//选中
|
|
|
+ [self.indexPathsForSelectedItems addObject:model];
|
|
|
+ model.isSelected = YES;
|
|
|
+ [cell isSelected:YES];
|
|
|
+
|
|
|
+ if(!model.imageData)
|
|
|
+ {
|
|
|
+ [[PHImageManager defaultManager] requestImageDataForAsset:model.asset options:nil resultHandler:^(NSData * _Nullable imageData, NSString * _Nullable dataUTI, UIImageOrientation orientation, NSDictionary * _Nullable info) {
|
|
|
+ // 直接得到最终的 NSData 数据
|
|
|
+ if (imageData) {
|
|
|
+ model.imageData = imageData;
|
|
|
+ }
|
|
|
+
|
|
|
+ [self setDataToBottomViewFun];
|
|
|
+ }];
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ [self setDataToBottomViewFun];
|
|
|
}
|
|
|
|
|
|
-#pragma mark 处理点击选中相关
|
|
|
-- (void)handlCellSelectFunBy:(NSIndexPath *)indexPath
|
|
|
+#pragma mark 同步数据到底部
|
|
|
+- (void)setDataToBottomViewFun
|
|
|
{
|
|
|
-// AJPhotoListCell *cell = (AJPhotoListCell *)[self.photoListView cellForItemAtIndexPath:indexPath];
|
|
|
-// ALAsset *asset = self.assets[indexPath.row];
|
|
|
-//
|
|
|
-// //超出最大限制
|
|
|
-// if (self.indexPathsForSelectedItems.count >= self.maximumNumberOfSelection && ![self.indexPathsForSelectedItems containsObject:asset]) {
|
|
|
-// if (_delegate && [_delegate respondsToSelector:@selector(photoPickerDidMaximum:)])
|
|
|
-// [_delegate photoPickerDidMaximum:self];
|
|
|
-// return;
|
|
|
-// }
|
|
|
-//
|
|
|
-// //选择过滤
|
|
|
-// BOOL selectable = [self.selectionFilter evaluateWithObject:asset];
|
|
|
-// if (!selectable) {
|
|
|
-// if (_delegate && [_delegate respondsToSelector:@selector(photoPickerDidSelectionFilter:)])
|
|
|
-// [_delegate photoPickerDidSelectionFilter:self];
|
|
|
-// return;
|
|
|
-// }
|
|
|
-//
|
|
|
-// //取消选中
|
|
|
-// if ([self.indexPathsForSelectedItems containsObject:asset]) {
|
|
|
-// [self.indexPathsForSelectedItems removeObject:asset];
|
|
|
-// [cell isSelected:NO];
|
|
|
-// if (_delegate && [_delegate respondsToSelector:@selector(photoPicker:didDeselectAsset:)])
|
|
|
-// [_delegate photoPicker:self didDeselectAsset:asset];
|
|
|
-// return;
|
|
|
-// }
|
|
|
-//
|
|
|
-// //选中
|
|
|
-// [self.indexPathsForSelectedItems addObject:asset];
|
|
|
-// [cell isSelected:YES];
|
|
|
-// if (_delegate && [_delegate respondsToSelector:@selector(photoPicker:didSelectAsset:)])
|
|
|
-// [_delegate photoPicker:self didSelectAsset:asset];
|
|
|
+ self.uploadFileBottomV.indexPathsForSelectedItems = self.indexPathsForSelectedItems;
|
|
|
}
|
|
|
|
|
|
#pragma mark - getter/setter
|