每次訪問相冊 都是一個 難看的畫面 對我來說已經受不了了 去code4app 去cocoachina 有的現在下來 不好用
今天同事 找到一個 圖片選擇器 懂得來說 效果 好不錯 當然 介於我們自己項目的需要 會對內部做一些修改 不過 我還是吧原生的分享得大家 你們可以根據自己的需要修改 總的用法不難
TZImagePickerController *imageVC = [[TZImagePickerController alloc]initWithMaxImagesCount:9 columnNumber:3 delegate:self pushPhotoPickerVc:YES];
// 1、是否允許選擇原圖
imageVC.isSelectOriginalPhoto = NO;
// 2、在內部顯示拍照按鈕
imageVC.allowTakePicture = YES;
// 3. 設置是否可以選擇視頻/圖片/原圖
imageVC.allowPickingVideo = YES;
imageVC.allowPickingImage = YES;
imageVC.allowPickingOriginalPhoto = YES;
// 4. 照片排列按修改時間升序
imageVC.sortAscendingByModificationDate = YES;
[self presentViewController:imageVC animated:YES completion:nil];
順便告訴你 圖片每次最多選擇9張 視頻只能選一個 媽的 這個博客能放文件共享嗎 在哪里 我曹 怎么分享文件
我先把 用法貼出來 當然 我們只用了一些 需要的 遵循代理 干過ios的 都會吧 別告訴我 tableview代理 textview代理 沒遵循過 那你用的是什么 我就不呵呵了 遵循 TZImagePickerControllerDelegate
#pragma mark <TZImagePickerControllerDelegate>代理
- (void)imagePickerController:(TZImagePickerController *)picker didFinishPickingPhotos:(NSArray<UIImage *> *)photos sourceAssets:(NSArray *)assets isSelectOriginalPhoto:(BOOL)isSelectOriginalPhoto{
photos 是選擇圖片 傳回來的UIImage 數組 想要拿到它 放到自己的數據源里面 就建一個全局數組接受吧
assets 這個是原始對象 要解析他 才能獲取到具體的 路徑 會累死你的 我們當時就是視頻地址獲取 累死
}
- (void)imagePickerController:(TZImagePickerController *)picker didFinishPickingVideo:(UIImage *)coverImage sourceAssets:(id)asset{
coverImage 視頻的第一幀圖片 你知道不 我們都知道視頻是圖片按幀組成的 舉個牛逼的例子 你打英雄聯盟的時候 fps是什么 每秒幀數 就是一秒有多少張圖片刷新 想一下 fps是3 每秒三張圖片 是不是卡死你 fps 是200 每秒200張圖片 連在一起播放出來 你能卡嗎 (id)asset 解析獲取視頻在手機里的地址
[self getAsset:self.selectedAsset resultHandler:^(NSURL *url) {
weakself.videoFileURL = url.absoluteString; 可以把它轉成字符串 接收出來 如果NSURL 可能失敗 因該是蘋果內部坐了處理
}];
}
#pragma mark 視頻地址獲取
- (void)getAsset:(id)asset resultHandler:(void (^)(NSURL *url))resultHandler {
if ([asset isKindOfClass:[PHAsset class]]) {
PHVideoRequestOptions* options = [[PHVideoRequestOptions alloc] init];
options.version = PHVideoRequestOptionsVersionOriginal;
options.deliveryMode = PHVideoRequestOptionsDeliveryModeAutomatic;
options.networkAccessAllowed = YES;
[[PHImageManager defaultManager] requestAVAssetForVideo:asset options:options resultHandler:^(AVAsset* avasset, AVAudioMix* audioMix, NSDictionary* info){
AVURLAsset *videoAsset = (AVURLAsset*)avasset;
resultHandler(videoAsset.URL);
}];
} else if ([asset isKindOfClass:[ALAsset class]]) {
resultHandler([asset valueForProperty:ALAssetPropertyAssetURL]); // ALAssetPropertyURLs
}
}
我曹 你們能看見嗎 看不見的活 譚真大佬的git地址 https://github.com/banchichen/TZImagePickerController/
