private void FeetchAddPhotos() { PHPhotoLibrary.RequestAuthorization(status => { if (status != PHAuthorizationStatus.Authorized) { return; } var galleryTemp = new List <PHAssetCollection>(); var allAlbums = PHAssetCollection.FetchAssetCollections(PHAssetCollectionType.Album, PHAssetCollectionSubtype.Any, null).Cast <PHAssetCollection>(); var smartAlbums = PHAssetCollection.FetchAssetCollections(PHAssetCollectionType.SmartAlbum, PHAssetCollectionSubtype.SmartAlbumUserLibrary, null).Cast <PHAssetCollection>(); galleryTemp.AddRange(allAlbums); galleryTemp.AddRange(smartAlbums); var gallerySort = galleryTemp.OrderBy(obj => obj.LocalizedTitle); NSOperationQueue.MainQueue.AddOperation(() => { foreach (var itemRaw in gallerySort) { var sortOptions = new PHFetchOptions(); sortOptions.SortDescriptors = new NSSortDescriptor[] { new NSSortDescriptor("creationDate", false) }; var items = PHAsset.FetchAssets(itemRaw, sortOptions).Cast <PHAsset>().ToList(); if (items.Count > 0) { var colec = new GalleryNative() { Collection = itemRaw, }; colec.Images.Add(new PhotoSetNative()); foreach (var item in items) { var newPhoto = new PhotoSetNative(); newPhoto.galleryImageXF.OriginalPath = item.LocalIdentifier; newPhoto.Image = item; colec.Images.Add(newPhoto); } galleryDirectories.Add(colec); } } tableView.ReloadData(); if (galleryDirectories.Count > 0) { CurrentParent = 0; IF_ItemSelectd(CurrentParent); } }); }); }
public void BindDataToCell(GalleryNative galleryDirectory, Action action) { var count = galleryDirectory.Images.Count; txtTitle.Text = galleryDirectory.Collection.LocalizedTitle; txtDescription.Text = "(" + count + ")"; imageView.ClipsToBounds = true; imageView.ContentMode = UIViewContentMode.ScaleAspectFill; try { var sortOptions = new PHFetchOptions(); sortOptions.SortDescriptors = new NSSortDescriptor[] { new NSSortDescriptor("creationDate", false) }; var items = PHAsset.FetchAssets(galleryDirectory.Collection, sortOptions).Cast <PHAsset>().ToList(); var options = new PHImageRequestOptions { Synchronous = true }; PHImageManager.DefaultManager.RequestImageForAsset(items[0], imageView.Bounds.Size, PHImageContentMode.AspectFit, options, (requestedImage, _) => { imageView.Image = requestedImage; }); } catch (Exception ex) { Console.WriteLine(ex.StackTrace); } if (ActionClick == null) { ActionClick = action; bttClick.TouchUpInside += (sender, e) => { ActionClick(); }; } }