如果存在block 可能崩溃的问题, 回归主线程调用, 如下栗子
// 添加图片 资源
[_sourceImagesCell setClickAddBlock:^{
dispatch_sync(dispatch_get_main_queue(), ^{
[weakSelf pushTZImagePickerController];
// NSLog(@"%@:数据已更新!",NSStringFromClass([self class]));
});
}];
引入方式
/// 选择相册
#import <Photos/Photos.h>
#import "TZImagePickerController.h"
#import <Photos/Photos.h>
#import "TZImageManager.h"
#import "TZVideoPlayerController.h"
#import "TZPhotoPreviewController.h"
#import "TZAssetCell.h"
#import <MobileCoreServices/MobileCoreServices.h>
#import "TZVideoEditedPreviewController.h"
#pragma mark - TZImagePickerController
- (void)pushTZImagePickerController {
TZImagePickerController *imagePickerVc = [[TZImagePickerController alloc] initWithMaxImagesCount:1 columnNumber:4 delegate:self pushPhotoPickerVc:YES];
imagePickerVc.isSelectOriginalPhoto = NO;
[imagePickerVc setUiImagePickerControllerSettingBlock:^(UIImagePickerController *imagePickerController) {
imagePickerController.videoQuality = UIImagePickerControllerQualityTypeHigh;
}];
// 样式, 可能不起作用
// imagePickerVc.iconThemeColor = [UIColor colorWithRed:31 / 255.0 green:185 / 255.0 blue:34 / 255.0 alpha:1.0];
// imagePickerVc.showPhotoCannotSelectLayer = YES;
// imagePickerVc.cannotSelectLayerColor = [[UIColor blackColor] colorWithAlphaComponent:0.8];
// 修改 字体颜色为黑色
imagePickerVc.barItemTextColor = [UIColor blackColor];
// 3. 设置是否可以选择视频/图片/原图
if(_isVideo){
imagePickerVc.allowPickingVideo = YES;
imagePickerVc.allowPickingImage = NO;
}else {
imagePickerVc.allowPickingVideo = NO;
imagePickerVc.allowPickingImage = YES;
}
imagePickerVc.allowPickingOriginalPhoto = YES;
imagePickerVc.allowPickingGif = NO;
imagePickerVc.allowPickingMultipleVideo = YES;// 是否可以多选视频
// 4. 照片排列按修改时间升序
imagePickerVc.sortAscendingByModificationDate = YES;
if (@available(iOS 13.0, *)) {
imagePickerVc.statusBarStyle = UIStatusBarStyleDarkContent;
} else {
imagePickerVc.statusBarStyle = UIStatusBarStyleDefault;
}
// 设置是否显示图片序号
imagePickerVc.showSelectedIndex = NO;
#pragma mark - 到这里为止
// 你可以通过block或者代理,来得到用户选择的照片.
[imagePickerVc setDidFinishPickingPhotosHandle:^(NSArray<UIImage *> *photos, NSArray *assets, BOOL isSelectOriginalPhoto) {
}];
imagePickerVc.modalPresentationStyle = UIModalPresentationFullScreen;
[self presentViewController:imagePickerVc animated:YES completion:nil];
}
#pragma mark - TZImagePickerControllerDelegate
/// 用户点击了取消
- (void)tz_imagePickerControllerDidCancel:(TZImagePickerController *)picker {
NSLog(@"cancel");
}