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
2eb5b0a8
Commit
2eb5b0a8
authored
Aug 23, 2016
by
tanzhen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增可设置columnNumber的初始化方法,可自定义photoPicker页每行展示照片个数,默认为每行4个
parent
5894fb96
Changes
9
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
81 additions
and
26 deletions
+81
-26
TZImagePickerController/Base.lproj/Main.storyboard
TZImagePickerController/Base.lproj/Main.storyboard
+26
-8
TZImagePickerController/TZImagePickerController/TZImageManager.h
...PickerController/TZImagePickerController/TZImageManager.h
+4
-0
TZImagePickerController/TZImagePickerController/TZImageManager.m
...PickerController/TZImagePickerController/TZImageManager.m
+12
-6
TZImagePickerController/TZImagePickerController/TZImagePickerController.h
...troller/TZImagePickerController/TZImagePickerController.h
+2
-1
TZImagePickerController/TZImagePickerController/TZImagePickerController.m
...troller/TZImagePickerController/TZImagePickerController.m
+24
-0
TZImagePickerController/TZImagePickerController/TZPhotoPickerController.h
...troller/TZImagePickerController/TZPhotoPickerController.h
+1
-0
TZImagePickerController/TZImagePickerController/TZPhotoPickerController.m
...troller/TZImagePickerController/TZPhotoPickerController.m
+7
-8
TZImagePickerController/TZImagePickerController/TZPhotoPreviewController.m
...roller/TZImagePickerController/TZPhotoPreviewController.m
+1
-0
TZImagePickerController/ViewController.m
TZImagePickerController/ViewController.m
+4
-3
No files found.
TZImagePickerController/Base.lproj/Main.storyboard
View file @
2eb5b0a8
This diff is collapsed.
Click to expand it.
TZImagePickerController/TZImagePickerController/TZImageManager.h
View file @
2eb5b0a8
...
...
@@ -23,6 +23,10 @@
/// Default is 600px / 默认600像素宽
@property
(
nonatomic
,
assign
)
CGFloat
photoPreviewMaxWidth
;
/// Default is 4, Use in photos collectionView in TZPhotoPickerController
/// 默认4列, TZPhotoPickerController中的照片collectionView
@property
(
nonatomic
,
assign
)
NSInteger
columnNumber
;
/// Sort photos ascending by modificationDate,Default is YES
/// 对照片排序,按修改时间升序,默认是YES。如果设置为NO,最新的照片会显示在最前面,内部的拍照按钮会排在第一个
@property
(
nonatomic
,
assign
)
BOOL
sortAscendingByModificationDate
;
...
...
TZImagePickerController/TZImagePickerController/TZImageManager.m
View file @
2eb5b0a8
...
...
@@ -29,8 +29,10 @@ static CGFloat TZScreenScale;
static
dispatch_once_t
onceToken
;
dispatch_once
(
&
onceToken
,
^
{
manager
=
[[
self
alloc
]
init
];
if
(
iOS8Later
)
{
manager
.
cachingImageManager
=
[[
PHCachingImageManager
alloc
]
init
];
// manager.cachingImageManager.allowsCachingHighQualityImages = YES;
}
TZScreenWidth
=
[
UIScreen
mainScreen
].
bounds
.
size
.
width
;
// 测试发现,如果scale在plus真机上取到3.0,内存会增大特别多。故这里写死成2.0
...
...
@@ -38,13 +40,17 @@ static CGFloat TZScreenScale;
if
(
TZScreenWidth
>
700
)
{
TZScreenScale
=
1
.
5
;
}
CGFloat
margin
=
4
;
CGFloat
itemWH
=
(
TZScreenWidth
-
2
*
margin
-
4
)
/
4
-
margin
;
AssetGridThumbnailSize
=
CGSizeMake
(
itemWH
*
TZScreenScale
,
itemWH
*
TZScreenScale
);
});
return
manager
;
}
-
(
void
)
setColumnNumber
:(
NSInteger
)
columnNumber
{
_columnNumber
=
columnNumber
;
CGFloat
margin
=
4
;
CGFloat
itemWH
=
(
TZScreenWidth
-
2
*
margin
-
4
)
/
columnNumber
-
margin
;
AssetGridThumbnailSize
=
CGSizeMake
(
itemWH
*
TZScreenScale
,
itemWH
*
TZScreenScale
);
}
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
-
(
ALAssetsLibrary
*
)
assetLibrary
{
...
...
TZImagePickerController/TZImagePickerController/TZImagePickerController.h
View file @
2eb5b0a8
...
...
@@ -29,6 +29,7 @@
/// Use this init method / 用这个初始化方法
-
(
instancetype
)
initWithMaxImagesCount
:(
NSInteger
)
maxImagesCount
delegate
:(
id
<
TZImagePickerControllerDelegate
>
)
delegate
;
-
(
instancetype
)
initWithMaxImagesCount
:(
NSInteger
)
maxImagesCount
columnNumber
:(
NSInteger
)
columnNumber
delegate
:(
id
<
TZImagePickerControllerDelegate
>
)
delegate
;
/// This init method just for previewing photos / 用这个初始化方法以预览图片
-
(
instancetype
)
initWithSelectedAssets
:(
NSMutableArray
*
)
selectedAssets
selectedPhotos
:(
NSMutableArray
*
)
selectedPhotos
index
:(
NSInteger
)
index
;
...
...
@@ -141,7 +142,7 @@
@interface
TZAlbumPickerController
:
UIViewController
@property
(
nonatomic
,
assign
)
NSInteger
columnNumber
;
@end
...
...
TZImagePickerController/TZImagePickerController/TZImagePickerController.m
View file @
2eb5b0a8
...
...
@@ -27,6 +27,9 @@
UIStatusBarStyle
_originStatusBarStyle
;
}
/// Default is 4, Use in photos collectionView in TZPhotoPickerController
/// 默认4列, TZPhotoPickerController中的照片collectionView
@property
(
nonatomic
,
assign
)
NSInteger
columnNumber
;
@end
@implementation
TZImagePickerController
...
...
@@ -80,7 +83,12 @@
}
-
(
instancetype
)
initWithMaxImagesCount
:(
NSInteger
)
maxImagesCount
delegate
:(
id
<
TZImagePickerControllerDelegate
>
)
delegate
{
return
[
self
initWithMaxImagesCount
:
maxImagesCount
columnNumber
:
4
delegate
:
delegate
];
}
-
(
instancetype
)
initWithMaxImagesCount
:(
NSInteger
)
maxImagesCount
columnNumber
:(
NSInteger
)
columnNumber
delegate
:(
id
<
TZImagePickerControllerDelegate
>
)
delegate
{
TZAlbumPickerController
*
albumPickerVc
=
[[
TZAlbumPickerController
alloc
]
init
];
albumPickerVc
.
columnNumber
=
columnNumber
;
self
=
[
super
initWithRootViewController
:
albumPickerVc
];
if
(
self
)
{
self
.
maxImagesCount
=
maxImagesCount
>
0
?
maxImagesCount
:
9
;
// Default is 9 / 默认最大可选9张图片
...
...
@@ -100,6 +108,7 @@
self
.
autoDismiss
=
YES
;
self
.
barItemTextFont
=
[
UIFont
systemFontOfSize
:
15
];
self
.
barItemTextColor
=
[
UIColor
whiteColor
];
self
.
columnNumber
=
columnNumber
;
[
self
configDefaultImageName
];
if
(
!
[[
TZImageManager
manager
]
authorizationStatusAuthorized
])
{
...
...
@@ -183,6 +192,7 @@
if
(
_pushToPhotoPickerVc
)
{
TZPhotoPickerController
*
photoPickerVc
=
[[
TZPhotoPickerController
alloc
]
init
];
photoPickerVc
.
isFirstAppear
=
YES
;
photoPickerVc
.
columnNumber
=
self
.
columnNumber
;
[[
TZImageManager
manager
]
getCameraRollAlbum
:
self
.
allowPickingVideo
allowPickingImage
:
self
.
allowPickingImage
completion
:^
(
TZAlbumModel
*
model
)
{
photoPickerVc
.
model
=
model
;
[
self
pushViewController
:
photoPickerVc
animated
:
YES
];
...
...
@@ -255,6 +265,19 @@
}
}
-
(
void
)
setColumnNumber
:(
NSInteger
)
columnNumber
{
_columnNumber
=
columnNumber
;
if
(
columnNumber
<=
2
)
{
_columnNumber
=
2
;
}
else
if
(
columnNumber
>=
6
)
{
_columnNumber
=
6
;
}
TZAlbumPickerController
*
albumPickerVc
=
[
self
.
childViewControllers
firstObject
];
albumPickerVc
.
columnNumber
=
_columnNumber
;
[
TZImageManager
manager
].
columnNumber
=
_columnNumber
;
}
-
(
void
)
setPhotoPreviewMaxWidth
:(
CGFloat
)
photoPreviewMaxWidth
{
_photoPreviewMaxWidth
=
photoPreviewMaxWidth
;
if
(
photoPreviewMaxWidth
>
800
)
{
...
...
@@ -418,6 +441,7 @@
-
(
void
)
tableView
:(
UITableView
*
)
tableView
didSelectRowAtIndexPath
:(
NSIndexPath
*
)
indexPath
{
TZPhotoPickerController
*
photoPickerVc
=
[[
TZPhotoPickerController
alloc
]
init
];
photoPickerVc
.
columnNumber
=
self
.
columnNumber
;
TZAlbumModel
*
model
=
_albumArr
[
indexPath
.
row
];
photoPickerVc
.
model
=
model
;
__weak
typeof
(
self
)
weakSelf
=
self
;
...
...
TZImagePickerController/TZImagePickerController/TZPhotoPickerController.h
View file @
2eb5b0a8
...
...
@@ -12,6 +12,7 @@
@interface
TZPhotoPickerController
:
UIViewController
@property
(
nonatomic
,
assign
)
BOOL
isFirstAppear
;
@property
(
nonatomic
,
assign
)
NSInteger
columnNumber
;
@property
(
nonatomic
,
strong
)
TZAlbumModel
*
model
;
@property
(
nonatomic
,
copy
)
void
(
^
backButtonClickHandle
)(
TZAlbumModel
*
model
);
...
...
TZImagePickerController/TZImagePickerController/TZPhotoPickerController.m
View file @
2eb5b0a8
...
...
@@ -110,26 +110,25 @@ static CGSize AssetGridThumbnailSize;
TZImagePickerController
*
tzImagePickerVc
=
(
TZImagePickerController
*
)
self
.
navigationController
;
UICollectionViewFlowLayout
*
layout
=
[[
UICollectionViewFlowLayout
alloc
]
init
];
CGFloat
margin
=
4
;
CGFloat
itemWH
=
(
self
.
view
.
tz_width
-
2
*
margin
-
4
)
/
4
-
margin
;
CGFloat
margin
=
5
;
CGFloat
itemWH
=
(
self
.
view
.
tz_width
-
(
self
.
columnNumber
+
1
)
*
margin
)
/
self
.
columnNumber
;
layout
.
itemSize
=
CGSizeMake
(
itemWH
,
itemWH
);
layout
.
minimumInteritemSpacing
=
margin
;
layout
.
minimumLineSpacing
=
margin
;
CGFloat
top
=
margin
+
44
;
CGFloat
top
=
44
;
if
(
iOS7Later
)
top
+=
20
;
CGFloat
collectionViewHeight
=
tzImagePickerVc
.
maxImagesCount
>
1
?
self
.
view
.
tz_height
-
50
-
top
:
self
.
view
.
tz_height
-
top
;
_collectionView
=
[[
UICollectionView
alloc
]
initWithFrame
:
CGRectMake
(
margin
,
top
,
self
.
view
.
tz_width
-
2
*
margin
,
collectionViewHeight
)
collectionViewLayout
:
layout
];
_collectionView
=
[[
UICollectionView
alloc
]
initWithFrame
:
CGRectMake
(
0
,
top
,
self
.
view
.
tz_width
,
collectionViewHeight
)
collectionViewLayout
:
layout
];
_collectionView
.
backgroundColor
=
[
UIColor
whiteColor
];
_collectionView
.
dataSource
=
self
;
_collectionView
.
delegate
=
self
;
_collectionView
.
alwaysBounceHorizontal
=
NO
;
if
(
iOS7Later
)
_collectionView
.
contentInset
=
UIEdgeInsetsMake
(
0
,
0
,
0
,
2
);
_collectionView
.
scrollIndicatorInsets
=
UIEdgeInsetsMake
(
0
,
0
,
0
,
-
2
);
_collectionView
.
contentInset
=
UIEdgeInsetsMake
(
margin
,
margin
,
margin
,
margin
);
if
(
_showTakePhotoBtn
&&
tzImagePickerVc
.
allowTakePicture
)
{
_collectionView
.
contentSize
=
CGSizeMake
(
self
.
view
.
tz_width
,
((
_model
.
count
+
4
)
/
4
)
*
self
.
view
.
tz_width
);
_collectionView
.
contentSize
=
CGSizeMake
(
self
.
view
.
tz_width
,
((
_model
.
count
+
self
.
columnNumber
)
/
self
.
columnNumber
)
*
self
.
view
.
tz_width
);
}
else
{
_collectionView
.
contentSize
=
CGSizeMake
(
self
.
view
.
tz_width
,
((
_model
.
count
+
3
)
/
4
)
*
self
.
view
.
tz_width
);
_collectionView
.
contentSize
=
CGSizeMake
(
self
.
view
.
tz_width
,
((
_model
.
count
+
self
.
columnNumber
-
1
)
/
self
.
columnNumber
)
*
self
.
view
.
tz_width
);
}
[
self
.
view
addSubview
:
_collectionView
];
[
_collectionView
registerClass
:[
TZAssetCell
class
]
forCellWithReuseIdentifier
:
@"TZAssetCell"
];
...
...
TZImagePickerController/TZImagePickerController/TZPhotoPreviewController.m
View file @
2eb5b0a8
...
...
@@ -46,6 +46,7 @@
[
self
configCollectionView
];
[
self
configCustomNaviBar
];
[
self
configBottomToolBar
];
self
.
view
.
clipsToBounds
=
YES
;
}
-
(
void
)
setPhotos
:(
NSMutableArray
*
)
photos
{
...
...
TZImagePickerController/ViewController.m
View file @
2eb5b0a8
...
...
@@ -35,6 +35,7 @@
@property
(
weak
,
nonatomic
)
IBOutlet
UISwitch
*
allowPickingOriginalPhotoSwitch
;
///< 允许选择原图
@property
(
weak
,
nonatomic
)
IBOutlet
UISwitch
*
showSheetSwitch
;
///< 显示一个sheet,把拍照按钮放在外面
@property
(
weak
,
nonatomic
)
IBOutlet
UITextField
*
maxCountTF
;
///< 照片最大可选张数,设置为1即为单选模式
@property
(
weak
,
nonatomic
)
IBOutlet
UITextField
*
columnNumberTF
;
@end
@implementation
ViewController
...
...
@@ -175,14 +176,14 @@
if
(
self
.
maxCountTF
.
text
.
integerValue
<=
0
)
{
return
;
}
TZImagePickerController
*
imagePickerVc
=
[[
TZImagePickerController
alloc
]
initWithMaxImagesCount
:
self
.
maxCountTF
.
text
.
integerValue
delegate
:
self
];
TZImagePickerController
*
imagePickerVc
=
[[
TZImagePickerController
alloc
]
initWithMaxImagesCount
:
self
.
maxCountTF
.
text
.
integerValue
columnNumber
:
self
.
columnNumberTF
.
text
.
integerValue
delegate
:
self
];
#pragma mark - 四类个性化设置,这些参数都可以不传,此时会走默认设置
imagePickerVc
.
isSelectOriginalPhoto
=
_isSelectOriginalPhoto
;
if
(
self
.
maxCountTF
.
text
.
integerValue
>
1
)
{
// 1.
如果你需要将拍照按钮放在外面,不要传这个参数
imagePickerVc
.
selectedAssets
=
_selectedAssets
;
//
optional, 可选的
// 1.
设置目前已经选中的图片数组
imagePickerVc
.
selectedAssets
=
_selectedAssets
;
//
目前已经选中的图片数组
}
imagePickerVc
.
allowTakePicture
=
self
.
showTakePhotoBtnSwitch
.
isOn
;
// 在内部显示拍照按钮
...
...
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