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
ab12cafe
Commit
ab12cafe
authored
Dec 02, 2020
by
ztsyyb
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加 自行决定照片能否被选中
parent
ffd0b6d2
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
65 additions
and
0 deletions
+65
-0
TZImagePickerController/TZImagePickerController/TZImageManager.h
...PickerController/TZImagePickerController/TZImageManager.h
+3
-0
TZImagePickerController/TZImagePickerController/TZImageManager.m
...PickerController/TZImagePickerController/TZImageManager.m
+9
-0
TZImagePickerController/TZImagePickerController/TZImagePickerController.h
...troller/TZImagePickerController/TZImagePickerController.h
+4
-0
TZImagePickerController/TZImagePickerController/TZPhotoPickerController.m
...troller/TZImagePickerController/TZPhotoPickerController.m
+6
-0
TZImagePickerController/TZImagePickerController/TZPhotoPreviewController.m
...roller/TZImagePickerController/TZPhotoPreviewController.m
+11
-0
TZImagePickerController/TZImagePickerController/TZVideoPlayerController.m
...troller/TZImagePickerController/TZVideoPlayerController.m
+3
-0
TZImagePickerController/ViewController.m
TZImagePickerController/ViewController.m
+29
-0
No files found.
TZImagePickerController/TZImagePickerController/TZImageManager.h
View file @
ab12cafe
...
@@ -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
;
...
...
TZImagePickerController/TZImagePickerController/TZImageManager.m
View file @
ab12cafe
...
@@ -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
{
...
...
TZImagePickerController/TZImagePickerController/TZImagePickerController.h
View file @
ab12cafe
...
@@ -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
...
...
TZImagePickerController/TZImagePickerController/TZPhotoPickerController.m
View file @
ab12cafe
...
@@ -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
];
...
...
TZImagePickerController/TZImagePickerController/TZPhotoPreviewController.m
View file @
ab12cafe
...
@@ -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
;
...
...
TZImagePickerController/TZImagePickerController/TZVideoPlayerController.m
View file @
ab12cafe
...
@@ -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
)
{
...
...
TZImagePickerController/ViewController.m
View file @
ab12cafe
...
@@ -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
{
...
...
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