搜索框的使用在開發過程非常常見,現在幾乎所有的應用程序都有搜索功能,下面是iOS圖片保存與搜索功能的代碼實現,跟著武林技術頻道小編帶你來了解一下吧!
1、保存圖片到相冊
/** * 保存圖片到相冊 */- (IBAction)saveImage { PHAuthorizationStatus status = [PHPhotoLibrary authorizationStatus]; if (status == PHAuthorizationStatusDenied) { NSLog(@"請到【設置-隱私-照片】打開訪問開關"); } else if (status == PHAuthorizationStatusRestricted) { NSLog(@"無法訪問相冊"); } else { // 保存相片的標識 __block NSString *assetId = nil; [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{ // 保存相片到相機膠卷,并返回標識 assetId = [PHAssetCreationRequest creationRequestForAssetFromImage:[UIImage imageNamed:@"logo"]].placeholderForCreatedAsset.localIdentifier; } completionHandler:^(BOOL success, NSError * _Nullable error) { if (!success) { NSLog(@"保存失敗:%@", error); return; } // 根據標識獲得相片對象 PHAsset *asset = [PHAsset fetchAssetsWithLocalIdentifiers:@[assetId] options:nil].lastObject; // 拿到自定義的相冊對象 PHAssetCollection *collection = [self collection]; if (collection == nil) return; // 保存相片到自定義相冊中 [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{ [[PHAssetCollectionChangeRequest changeRequestForAssetCollection:collection] addAssets:@[asset]]; } completionHandler:^(BOOL success, NSError * _Nullable error) { if (success) { NSLog(@"保存成功"); } else { NSLog(@"保存失敗:%@", error); } }]; }]; }}2、搜索所有相片
/** * 查詢所有的圖片 */- (IBAction)searchAllImages { // 遍歷所有的自定義相冊 PHFetchResult *collectionResult0 = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAlbumRegular options:nil]; for (PHAssetCollection *collection in collectionResult0) { [self searchAllImagesInCollection:collection]; } // 獲得相機膠卷的圖片 PHFetchResult *collectionResult1 = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum subtype:PHAssetCollectionSubtypeAlbumRegular options:nil]; for (PHAssetCollection *collection in collectionResult1) { if (![collection.localizedTitle isEqualToString:@"Camera Roll"]) continue; [self searchAllImagesInCollection:collection]; break; }} /** * 查詢某個相冊里面的所有圖片 */- (void)searchAllImagesInCollection:(PHAssetCollection *)collection{ // 采取同步獲取圖片(只獲得一次圖片) PHImageRequestOptions *imageOptions = [[PHImageRequestOptions alloc] init]; imageOptions.synchronous = YES; NSLog(@"相冊名字:%@", collection.localizedTitle); // 遍歷這個相冊中的所有圖片 PHFetchResult *assetResult = [PHAsset fetchAssetsInAssetCollection:collection options:nil]; for (PHAsset *asset in assetResult) { // 過濾非圖片 if (asset.mediaType != PHAssetMediaTypeImage) continue; // 圖片原尺寸 CGSize targetSize = CGSizeMake(asset.pixelWidth, asset.pixelHeight); // 請求圖片 [[PHImageManager defaultManager] requestImageForAsset:asset targetSize:targetSize contentMode:PHImageContentModeDefault options:imageOptions resultHandler:^(UIImage * _Nullable result, NSDictionary * _Nullable info) { NSLog(@"圖片:%@", result); }]; }} 以上代碼都是武林技術頻道小編為大家搜集的iOS圖片保存與搜索功能的代碼實現,希望對大家的學習有一定的幫助!
新聞熱點
疑難解答