Commit ab12cafe authored by ztsyyb's avatar ztsyyb

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

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