Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
D
dz_TZImagePickerController
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
shuijing
dz_TZImagePickerController
Commits
974205d0
Unverified
Commit
974205d0
authored
Apr 02, 2021
by
谭真
Committed by
GitHub
Apr 02, 2021
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1483 from LingliZ/lz
增加选中或者取消选中一张照片的代理方法
parents
03ecfc8b
41319991
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
99 additions
and
3 deletions
+99
-3
TZImagePickerController/TZImagePickerController/TZImagePickerController.h
...troller/TZImagePickerController/TZImagePickerController.h
+10
-0
TZImagePickerController/TZImagePickerController/TZPhotoPickerController.m
...troller/TZImagePickerController/TZPhotoPickerController.m
+31
-1
TZImagePickerController/TZImagePickerController/TZPhotoPreviewController.m
...roller/TZImagePickerController/TZPhotoPreviewController.m
+30
-0
TZImagePickerController/ViewController.m
TZImagePickerController/ViewController.m
+28
-2
No files found.
TZImagePickerController/TZImagePickerController/TZImagePickerController.h
View file @
974205d0
...
...
@@ -269,6 +269,16 @@
-
(
void
)
imagePickerController
:(
TZImagePickerController
*
)
picker
didFinishPickingPhotos
:(
NSArray
<
UIImage
*>
*
)
photos
sourceAssets
:(
NSArray
*
)
assets
isSelectOriginalPhoto
:(
BOOL
)
isSelectOriginalPhoto
infos
:(
NSArray
<
NSDictionary
*>
*
)
infos
;
-
(
void
)
tz_imagePickerControllerDidCancel
:(
TZImagePickerController
*
)
picker
;
/// 如果用户选择了某张照片下面的代理方法会被执行
/// 如果isSelectOriginalPhoto为YES,表明用户选择了原图
/// 你可以通过一个asset获得原图,通过这个方法:[[TZImageManager manager] getOriginalPhotoWithAsset:completion:]
-
(
void
)
imagePickerController
:(
TZImagePickerController
*
)
picker
didSelectAsset
:(
PHAsset
*
)
asset
photo
:(
UIImage
*
)
photo
isSelectOriginalPhoto
:(
BOOL
)
isSelectOriginalPhoto
;
/// 如果用户取消选择了某张照片下面的代理方法会被执行
/// 如果isSelectOriginalPhoto为YES,表明用户选择了原图
/// 你可以通过一个asset获得原图,通过这个方法:[[TZImageManager manager] getOriginalPhotoWithAsset:completion:]
-
(
void
)
imagePickerController
:(
TZImagePickerController
*
)
picker
didDeselectAsset
:(
PHAsset
*
)
asset
photo
:(
UIImage
*
)
photo
isSelectOriginalPhoto
:(
BOOL
)
isSelectOriginalPhoto
;
// If user picking a video and allowPickingMultipleVideo is NO, this callback will be called.
// If allowPickingMultipleVideo is YES, will call imagePickerController:didFinishPickingPhotos:sourceAssets:isSelectOriginalPhoto:
// 如果用户选择了一个视频且allowPickingMultipleVideo是NO,下面的代理方法会被执行
...
...
TZImagePickerController/TZImagePickerController/TZPhotoPickerController.m
View file @
974205d0
...
...
@@ -616,6 +616,7 @@ static CGFloat itemMargin = 5;
for
(
TZAssetModel
*
model_item
in
selectedModels
)
{
if
([
model
.
asset
.
localIdentifier
isEqualToString
:
model_item
.
asset
.
localIdentifier
])
{
[
tzImagePickerVc
removeSelectedModel
:
model_item
];
[
strongSelf
setAsset
:
model_item
.
asset
isSelect
:
NO
];
break
;
}
}
...
...
@@ -652,6 +653,7 @@ static CGFloat itemMargin = 5;
if
(
tzImagePickerVc
.
showSelectedIndex
||
tzImagePickerVc
.
showPhotoCannotSelectLayer
)
{
[[
NSNotificationCenter
defaultCenter
]
postNotificationName
:
@"TZ_PHOTO_PICKER_RELOAD_NOTIFICATION"
object
:
strongSelf
.
navigationController
];
}
[
strongSelf
setAsset
:
model
.
asset
isSelect
:
YES
];
[
strongSelf
refreshBottomToolBarStatus
];
[
UIView
showOscillatoryAnimationWithLayer
:
strongLayer
type
:
TZOscillatoryAnimationToSmaller
];
}
else
{
...
...
@@ -874,6 +876,34 @@ static CGFloat itemMargin = 5;
}
}
/// 选中/取消选中某张照片
-
(
void
)
setAsset
:(
PHAsset
*
)
asset
isSelect
:(
BOOL
)
isSelect
{
TZImagePickerController
*
tzImagePickerVc
=
(
TZImagePickerController
*
)
self
.
navigationController
;
if
(
isSelect
&&
[
tzImagePickerVc
.
pickerDelegate
respondsToSelector
:
@selector
(
imagePickerController
:
didSelectAsset
:
photo
:
isSelectOriginalPhoto
:
)])
{
[
self
callDelegate
:
asset
isSelect
:
YES
];
}
if
(
!
isSelect
&&
[
tzImagePickerVc
.
pickerDelegate
respondsToSelector
:
@selector
(
imagePickerController
:
didDeselectAsset
:
photo
:
isSelectOriginalPhoto
:
)])
{
[
self
callDelegate
:
asset
isSelect
:
NO
];
}
}
/// 调用选中/取消选中某张照片的代理方法
-
(
void
)
callDelegate
:(
PHAsset
*
)
asset
isSelect
:(
BOOL
)
isSelect
{
TZImagePickerController
*
tzImagePickerVc
=
(
TZImagePickerController
*
)
self
.
navigationController
;
__weak
typeof
(
self
)
weakSelf
=
self
;
__weak
typeof
(
tzImagePickerVc
)
weakImagePickerVc
=
tzImagePickerVc
;
[[
TZImageManager
manager
]
getPhotoWithAsset
:
asset
completion
:
^
(
UIImage
*
photo
,
NSDictionary
*
info
,
BOOL
isDegraded
)
{
if
(
isDegraded
)
return
;
__strong
typeof
(
weakSelf
)
strongSelf
=
weakSelf
;
__strong
typeof
(
weakImagePickerVc
)
strongImagePickerVc
=
weakImagePickerVc
;
if
(
isSelect
)
{
[
strongImagePickerVc
.
pickerDelegate
imagePickerController
:
strongImagePickerVc
didSelectAsset
:
asset
photo
:
photo
isSelectOriginalPhoto
:
strongSelf
.
isSelectOriginalPhoto
];
}
else
{
[
strongImagePickerVc
.
pickerDelegate
imagePickerController
:
strongImagePickerVc
didDeselectAsset
:
asset
photo
:
photo
isSelectOriginalPhoto
:
strongSelf
.
isSelectOriginalPhoto
];
}
}];
}
#pragma mark - UIImagePickerControllerDelegate
-
(
void
)
imagePickerController
:(
UIImagePickerController
*
)
picker
didFinishPickingMediaWithInfo
:(
NSDictionary
*
)
info
{
...
...
TZImagePickerController/TZImagePickerController/TZPhotoPreviewController.m
View file @
974205d0
...
...
@@ -318,6 +318,7 @@
return
;
}
[
_tzImagePickerVc
addSelectedModel
:
model
];
[
self
setAsset
:
model
.
asset
isSelect
:
YES
];
if
(
self
.
photos
)
{
[
_tzImagePickerVc
.
selectedAssets
addObject
:
_assetsTemp
[
self
.
currentIndex
]];
[
self
.
photos
addObject
:
_photosTemp
[
self
.
currentIndex
]];
...
...
@@ -353,6 +354,7 @@
// [_tzImagePickerVc.selectedAssets removeObject:_assetsTemp[self.currentIndex]];
[
self
.
photos
removeObject
:
_photosTemp
[
self
.
currentIndex
]];
}
[
self
setAsset
:
model
.
asset
isSelect
:
NO
];
break
;
}
}
...
...
@@ -638,4 +640,32 @@
return
[
TZCommonTools
tz_isRightToLeftLayout
]
?
self
.
models
.
count
-
_currentIndex
-
1
:
_currentIndex
;
}
/// 选中/取消选中某张照片
-
(
void
)
setAsset
:(
PHAsset
*
)
asset
isSelect
:(
BOOL
)
isSelect
{
TZImagePickerController
*
tzImagePickerVc
=
(
TZImagePickerController
*
)
self
.
navigationController
;
if
(
isSelect
&&
[
tzImagePickerVc
.
pickerDelegate
respondsToSelector
:
@selector
(
imagePickerController
:
didSelectAsset
:
photo
:
isSelectOriginalPhoto
:
)])
{
[
self
callDelegate
:
asset
isSelect
:
YES
];
}
if
(
!
isSelect
&&
[
tzImagePickerVc
.
pickerDelegate
respondsToSelector
:
@selector
(
imagePickerController
:
didDeselectAsset
:
photo
:
isSelectOriginalPhoto
:
)])
{
[
self
callDelegate
:
asset
isSelect
:
NO
];
}
}
/// 调用选中/取消选中某张照片的代理方法
-
(
void
)
callDelegate
:(
PHAsset
*
)
asset
isSelect
:(
BOOL
)
isSelect
{
TZImagePickerController
*
tzImagePickerVc
=
(
TZImagePickerController
*
)
self
.
navigationController
;
__weak
typeof
(
self
)
weakSelf
=
self
;
__weak
typeof
(
tzImagePickerVc
)
weakImagePickerVc
=
tzImagePickerVc
;
[[
TZImageManager
manager
]
getPhotoWithAsset
:
asset
completion
:
^
(
UIImage
*
photo
,
NSDictionary
*
info
,
BOOL
isDegraded
)
{
if
(
isDegraded
)
return
;
__strong
typeof
(
weakSelf
)
strongSelf
=
weakSelf
;
__strong
typeof
(
weakImagePickerVc
)
strongImagePickerVc
=
weakImagePickerVc
;
if
(
isSelect
)
{
[
strongImagePickerVc
.
pickerDelegate
imagePickerController
:
strongImagePickerVc
didSelectAsset
:
asset
photo
:
photo
isSelectOriginalPhoto
:
strongSelf
.
isSelectOriginalPhoto
];
}
else
{
[
strongImagePickerVc
.
pickerDelegate
imagePickerController
:
strongImagePickerVc
didDeselectAsset
:
asset
photo
:
photo
isSelectOriginalPhoto
:
strongSelf
.
isSelectOriginalPhoto
];
}
}];
}
@end
TZImagePickerController/ViewController.m
View file @
974205d0
...
...
@@ -587,6 +587,32 @@
}
}
/// 如果用户选择了某张照片下面的代理方法会被执行
/// 如果isSelectOriginalPhoto为YES,表明用户选择了原图
/// 你可以通过一个asset获得原图,通过这个方法:[[TZImageManager manager] getOriginalPhotoWithAsset:completion:]
-
(
void
)
imagePickerController
:(
TZImagePickerController
*
)
picker
didSelectAsset
:(
PHAsset
*
)
asset
photo
:(
UIImage
*
)
photo
isSelectOriginalPhoto
:(
BOOL
)
isSelectOriginalPhoto
{
// [_selectedAssets addObject:asset];
// [_selectedPhotos addObject:photo];
// [self.collectionView reloadData];
}
/// 如果用户取消选择了某张照片下面的代理方法会被执行
/// 如果isSelectOriginalPhoto为YES,表明用户选择了原图
/// 你可以通过一个asset获得原图,通过这个方法:[[TZImageManager manager] getOriginalPhotoWithAsset:completion:]
-
(
void
)
imagePickerController
:(
TZImagePickerController
*
)
picker
didDeselectAsset
:(
PHAsset
*
)
asset
photo
:(
UIImage
*
)
photo
isSelectOriginalPhoto
:(
BOOL
)
isSelectOriginalPhoto
{
// int index = -1;
// for (int i = 0; i < _selectedAssets.count; i++) {
// if ([_selectedAssets[i] isEqual:asset]) {
// index = i;
// }
// }
// if (index > -1) {
// [_selectedAssets removeObjectAtIndex:index];
// [_selectedPhotos removeObjectAtIndex:index];
// [self.collectionView reloadData];
// }
}
// If user picking a video and allowPickingMultipleVideo is NO, this callback will be called.
// If allowPickingMultipleVideo is YES, will call imagePickerController:didFinishPickingPhotos:sourceAssets:isSelectOriginalPhoto:
// 如果用户选择了一个视频且allowPickingMultipleVideo是NO,下面的代理方法会被执行
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment