2012-03-16 35 views
5

Tôi biết cách cho phép người dùng chọn một hình ảnh từ UIImagePickerController, nhưng tôi không muốn điều đó. Tôi chỉ muốn có NSArray của hình ảnh được lưu trữ trong điện thoại, nhưng tôi không muốn liên quan đến người dùng (để chọn một và sau đó có hình ảnh đó ...), thay vào đó, tôi đã tạo bộ điều khiển chọn hình ảnh tùy chỉnh của riêng mình muốn có nguồn như là một người cực đoan.Cách truy cập Hình ảnh từ Hình ảnh đã Lưu theo chương trình trong iphone KHÔNG CÓ UImagePickerController?

+0

việc kiểm tra này [link] (https://github.com/jeena/JPImagePickerController) –

+1

Sử dụng tài sản bạn sẽ có được những bức ảnh http://developer.apple.com /library/ios/#documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/01_UsingAssets.html –

+0

@MuditBajpai: Điều này không hiệu quả đối với tôi ... Tôi muốn Array hình ảnh được lưu trữ trong điện thoại ... Tôi không muốn chỉ định bất kỳ hình ảnh bên ngoài nào được hiển thị trong Chế độ xem, thay vào đó, tôi muốn có hình ảnh của bộ sưu tập điện thoại .... Hy vọng bạn hiểu .. –

Trả lời

9

Bạn có thể dễ dàng thực hiện điều đó bằng cách sử dụng khung công tác AVFoundation và AssetsLibrary. Đây là đoạn mã để truy cập vào tất cả các bức ảnh:

-(void)addPhoto:(ALAssetRepresentation *)asset 
{ 
    //NSLog(@"Adding photo!"); 
    [photos addObject:asset]; 
} 

-(void)loadPhotos 
{ 
    photos = [[NSMutableArray alloc] init];  
    library = [[ALAssetsLibrary alloc] init];  

    // Enumerate just the photos and videos group by using ALAssetsGroupSavedPhotos. 
    if([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) 
    { 
     [library enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos usingBlock:^(ALAssetsGroup *group, BOOL *stop) 
     {   
      // Within the group enumeration block, filter if necessary 
      [group setAssetsFilter:[ALAssetsFilter allPhotos]];   
      [group enumerateAssetsUsingBlock:^(ALAsset *alAsset, NSUInteger index, BOOL *innerStop) 
       {         
        // The end of the enumeration is signaled by asset == nil.    
        if (alAsset) 
        { 
         ALAssetRepresentation *representation = [alAsset defaultRepresentation];      
         [self addPhoto:representation];      
        }  
        else 
        { 
         NSLog(@"Done! Count = %d", photos.count); 
         //Do something awesome 
        } 
       }]; 
     } 
     failureBlock: ^(NSError *error) { 
     // Typically you should handle an error more gracefully than this. 
     NSLog(@"No groups");         
     }]; 
    } 
} 
+0

Tuyệt vời ... Cảm ơn bạn Rất nhiều Dude ... Tôi đã làm tương tự, ngoại trừ tôi cho phép người dùng chọn xem anh ấy muốn hình ảnh từ Ảnh đã lưu, Album hoặc bất kỳ nguồn nào khác (trong TableView) .. và theo lựa chọn đó, tôi đặt Hình ảnh vào Thư viện tùy chỉnh của tôi. –

+0

Đẹp, điều đó thậm chí còn tốt hơn. Đối với người xem trong tương lai của bài đăng này, bạn có thể chấp nhận câu trả lời này làm câu trả lời đúng không? –

+0

Chắc chắn .... điều này chỉ là tốt .. –

Các vấn đề liên quan