Commit ab12cafe authored by ztsyyb's avatar ztsyyb

添加 自行决定照片能否被选中

parent ffd0b6d2
...@@ -109,6 +109,9 @@ ...@@ -109,6 +109,9 @@
/// 检查照片大小是否满足最小要求 /// 检查照片大小是否满足最小要求
- (BOOL)isPhotoSelectableWithAsset:(PHAsset *)asset; - (BOOL)isPhotoSelectableWithAsset:(PHAsset *)asset;
/// 检查照片能否被选中
- (BOOL)checkAssetCanBeSelected:(PHAsset *)asset;
/// 修正图片转向 /// 修正图片转向
- (UIImage *)fixOrientation:(UIImage *)aImage; - (UIImage *)fixOrientation:(UIImage *)aImage;
......
...@@ -805,6 +805,15 @@ static dispatch_once_t onceToken; ...@@ -805,6 +805,15 @@ static dispatch_once_t onceToken;
return YES; return YES;
} }
/// 检查照片能否被选中
- (BOOL)checkAssetCanBeSelected:(PHAsset *)asset {
if ([self.pickerDelegate respondsToSelector:@selector(isAssetCanBeSelected:)]) {
BOOL canSelectAsset = [self.pickerDelegate isAssetCanBeSelected:asset];
return canSelectAsset;
}
return YES;
}
#pragma mark - Private Method #pragma mark - Private Method
- (TZAlbumModel *)modelWithResult:(PHFetchResult *)result collection:(PHAssetCollection *)collection isCameraRoll:(BOOL)isCameraRoll needFetchAssets:(BOOL)needFetchAssets options:(PHFetchOptions *)options { - (TZAlbumModel *)modelWithResult:(PHFetchResult *)result collection:(PHAssetCollection *)collection isCameraRoll:(BOOL)isCameraRoll needFetchAssets:(BOOL)needFetchAssets options:(PHFetchOptions *)options {
......
...@@ -288,6 +288,10 @@ ...@@ -288,6 +288,10 @@
// Decide asset show or not't // Decide asset show or not't
// 决定照片显示与否 // 决定照片显示与否
- (BOOL)isAssetCanSelect:(PHAsset *)asset; - (BOOL)isAssetCanSelect:(PHAsset *)asset;
// Decide asset can be selected
// 决定照片能否被选中
- (BOOL)isAssetCanBeSelected:(PHAsset *)asset;
@end @end
......
...@@ -627,6 +627,9 @@ static CGFloat itemMargin = 5; ...@@ -627,6 +627,9 @@ static CGFloat itemMargin = 5;
} else { } else {
// 2. select:check if over the maxImagesCount / 选择照片,检查是否超过了最大个数的限制 // 2. select:check if over the maxImagesCount / 选择照片,检查是否超过了最大个数的限制
if (tzImagePickerVc.selectedModels.count < tzImagePickerVc.maxImagesCount) { if (tzImagePickerVc.selectedModels.count < tzImagePickerVc.maxImagesCount) {
if (![[TZImageManager manager] checkAssetCanBeSelected:model.asset]) {
return;
}
if (!tzImagePickerVc.allowPreview) { if (!tzImagePickerVc.allowPreview) {
BOOL shouldDone = tzImagePickerVc.maxImagesCount == 1; BOOL shouldDone = tzImagePickerVc.maxImagesCount == 1;
if (!tzImagePickerVc.allowPickingMultipleVideo && (model.type == TZAssetModelMediaTypeVideo || model.type == TZAssetModelMediaTypePhotoGif)) { if (!tzImagePickerVc.allowPickingMultipleVideo && (model.type == TZAssetModelMediaTypeVideo || model.type == TZAssetModelMediaTypePhotoGif)) {
...@@ -941,6 +944,9 @@ static CGFloat itemMargin = 5; ...@@ -941,6 +944,9 @@ static CGFloat itemMargin = 5;
if (assetModel.type == TZAssetModelMediaTypeVideo && !tzImagePickerVc.allowPickingMultipleVideo) { if (assetModel.type == TZAssetModelMediaTypeVideo && !tzImagePickerVc.allowPickingMultipleVideo) {
// 不能多选视频的情况下,不选中拍摄的视频 // 不能多选视频的情况下,不选中拍摄的视频
} else { } else {
if (![[TZImageManager manager] checkAssetCanBeSelected:assetModel.asset]) {
return;
}
assetModel.isSelected = YES; assetModel.isSelected = YES;
[tzImagePickerVc addSelectedModel:assetModel]; [tzImagePickerVc addSelectedModel:assetModel];
[self refreshBottomToolBarStatus]; [self refreshBottomToolBarStatus];
......
...@@ -314,6 +314,9 @@ ...@@ -314,6 +314,9 @@
return; return;
// 2. if not over the maxImagesCount / 如果没有超过最大个数限制 // 2. if not over the maxImagesCount / 如果没有超过最大个数限制
} else { } else {
if (![[TZImageManager manager] checkAssetCanBeSelected:model.asset]) {
return;
}
[_tzImagePickerVc addSelectedModel:model]; [_tzImagePickerVc addSelectedModel:model];
if (self.photos) { if (self.photos) {
[_tzImagePickerVc.selectedAssets addObject:_assetsTemp[self.currentIndex]]; [_tzImagePickerVc.selectedAssets addObject:_assetsTemp[self.currentIndex]];
...@@ -389,6 +392,10 @@ ...@@ -389,6 +392,10 @@
// 如果没有选中过照片 点击确定时选中当前预览的照片 // 如果没有选中过照片 点击确定时选中当前预览的照片
if (_tzImagePickerVc.selectedModels.count == 0 && _tzImagePickerVc.minImagesCount <= 0 && _tzImagePickerVc.autoSelectCurrentWhenDone) { if (_tzImagePickerVc.selectedModels.count == 0 && _tzImagePickerVc.minImagesCount <= 0 && _tzImagePickerVc.autoSelectCurrentWhenDone) {
TZAssetModel *model = _models[self.currentIndex];
if (![[TZImageManager manager] checkAssetCanBeSelected:model.asset]) {
return;
}
[self select:_selectButton]; [self select:_selectButton];
} }
NSIndexPath *indexPath = [NSIndexPath indexPathForItem:self.currentIndex inSection:0]; NSIndexPath *indexPath = [NSIndexPath indexPathForItem:self.currentIndex inSection:0];
...@@ -415,6 +422,10 @@ ...@@ -415,6 +422,10 @@
} }
- (void)originalPhotoButtonClick { - (void)originalPhotoButtonClick {
TZAssetModel *model = _models[self.currentIndex];
if (![[TZImageManager manager] checkAssetCanBeSelected:model.asset]) {
return;
}
_originalPhotoButton.selected = !_originalPhotoButton.isSelected; _originalPhotoButton.selected = !_originalPhotoButton.isSelected;
_isSelectOriginalPhoto = _originalPhotoButton.isSelected; _isSelectOriginalPhoto = _originalPhotoButton.isSelected;
_originalPhotoLabel.hidden = !_originalPhotoButton.isSelected; _originalPhotoLabel.hidden = !_originalPhotoButton.isSelected;
......
...@@ -183,6 +183,9 @@ ...@@ -183,6 +183,9 @@
} }
- (void)doneButtonClick { - (void)doneButtonClick {
if (![[TZImageManager manager] checkAssetCanBeSelected:_model.asset]) {
return;
}
if (self.navigationController) { if (self.navigationController) {
TZImagePickerController *imagePickerVc = (TZImagePickerController *)self.navigationController; TZImagePickerController *imagePickerVc = (TZImagePickerController *)self.navigationController;
if (imagePickerVc.autoDismiss) { if (imagePickerVc.autoDismiss) {
......
...@@ -659,6 +659,35 @@ ...@@ -659,6 +659,35 @@
return YES; return YES;
} }
// Decide asset can be selected
// 决定照片能否被选中
- (BOOL)isAssetCanBeSelected:(PHAsset *)asset {
/*
switch (asset.mediaType) {
case PHAssetMediaTypeVideo: {
// 视频时长
// NSTimeInterval duration = phAsset.duration;
return NO;
} break;
case PHAssetMediaTypeImage: {
// 图片尺寸
if (phAsset.pixelWidth > 3000 || phAsset.pixelHeight > 3000) {
// return NO;
}
return YES;
} break;
case PHAssetMediaTypeAudio:
return NO;
break;
case PHAssetMediaTypeUnknown:
return NO;
break;
default: break;
}
*/
return YES;
}
#pragma mark - Click Event #pragma mark - Click Event
- (void)deleteBtnClik:(UIButton *)sender { - (void)deleteBtnClik:(UIButton *)sender {
......
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