2011-09-08 59 views

回答

1

您有这多种可能性:

  • 如果你要显示的标准视图,允许用户从其相册挑选一张照片,使用UIImagePickerController。如果您只需要用户从其相册中选择现有的照片,此操作非常简单易用。 - >see here

  • 如果您想以编程方式操作PhotoAlbum中的所有照片,请自定义显示缩略图的视图,或以其他方式列出照片,并获取每张图像的更详细信息,循环显示所有图像在相册等,使用AssetsLibraryALAssetALAssetsLibrary,...和类似的类) - >see here

0

你必须使用的UIImagePickerController为...按照此Link

0
- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    [activity startAnimating]; 


    appObj=(ImagePickerAppDelegate *)[[UIApplication sharedApplication]delegate]; 

    void (^assetEnumerator)(struct ALAsset *, NSUInteger, BOOL *) = ^(ALAsset *result, NSUInteger index, BOOL *stop) 
    { 
     if(result != NULL) 
     { 
      //assets is a mutualable array...for storing the images that are in the device.. 
      [assets addObject:result]; 
     } 
    }; 

    void (^assetGroupEnumerator)(struct ALAssetsGroup *, BOOL *) = ^(ALAssetsGroup *group, BOOL *stop) 
    { 
     if(group != nil) 
     { 
      [group enumerateAssetsUsingBlock:assetEnumerator]; 
     } 
     //meth is a user defined method.. 
     [self meth]; 
     [activity stopAnimating]; 
     [activity setHidden:YES]; 
    }; 
    assets = [[NSMutableArray alloc] init]; 
    ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; 
    [library enumerateGroupsWithTypes:ALAssetsGroupAlbum usingBlock:assetGroupEnumerator 
         failureBlock: ^(NSError *error) { NSLog(@"Failure");}]; 
} 


-(void)meth 
{ 
    NSLog(@"%i",[assets count]); 

    if(userOrientation==UIInterfaceOrientationPortrait || userOrientation==UIInterfaceOrientationPortraitUpsideDown) 
    { 
     NSLog(@"haii"); 
     [scrollView removeFromSuperview]; 

     scrollView=[[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, 320, 460)]; 
     scrollView.backgroundColor=[UIColor whiteColor]; 

     NSLog(@"%i",[assets count]); 
     for (int i = 0; i < [assets count]; i++) 
     { 
      imgBtn = [UIButton buttonWithType:UIButtonTypeCustom]; 
      [imgBtn setFrame:CGRectMake((i%4*80)+2,(i/4*80)+2,75,75)]; 
      imgBtn.tag=i; 
      [imgBtn addTarget:self action:@selector(imageClicked:) forControlEvents:UIControlEventTouchUpInside]; 
      ALAsset *asset=[assets objectAtIndex:i]; 
      [imgBtn setImage:[UIImage imageWithCGImage:[asset thumbnail]] forState:UIControlStateNormal]; 
      [scrollView addSubview:imgBtn]; 
     } 
     scrollView.contentSize = CGSizeMake(320,(([assets count]/4)+1)*300); 
    } 

    if(userOrientation==UIInterfaceOrientationLandscapeRight || userOrientation==UIInterfaceOrientationLandscapeLeft) 
    { 
     [scrollView removeFromSuperview]; 
     scrollView=[[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, 480,320)]; 
     for (int i = 0; i < [assets count]; i++) 
     { 
      imgBtn = [UIButton buttonWithType:UIButtonTypeCustom]; 
      [imgBtn setFrame:CGRectMake((i%6*80)+2,(i/6*80)+2,75,75)]; 
      imgBtn.tag=i; 
      [imgBtn addTarget:self action:@selector(imageClicked:) forControlEvents:UIControlEventTouchUpInside]; 
      ALAsset *asset=[assets objectAtIndex:i]; 
      [imgBtn setImage:[UIImage imageWithCGImage:[asset thumbnail]] forState:UIControlStateNormal]; 
      [scrollView addSubview:imgBtn]; 
     } 
     scrollView.contentSize = CGSizeMake(480,(([assets count]/4)+1)*300); 
    } 
    [self.view addSubview:scrollView]; 
} 

-(void)imageClicked:(UIButton *)sender 
{ 
    //for picking the images that the user has selected we are using other array "selectedImages" i.e declared in the app delegate 
    ALAsset *asset=[assets objectAtIndex:sender.tag]; 
    [appObj.selectedImages addObject:[UIImage imageWithCGImage:[[asset defaultRepresentation] fullScreenImage]]]; 
    NSLog(@"%i",[appObj.selectedImages count]); 
    [self.navigationController popViewControllerAnimated:YES ]; 
} 
0

您可以使用下面的代码来访问相册。

UIImagePickerController * anImagePickerController = [[UIImagePickerController alloc] init]; 
anImagePickerController.delegate = self; 
anImagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera; 
anImagePickerController.showsCameraControls = YES; 
[self presentModalViewController:anImagePickerController animated:NO]; 
[anImagePickerController release]; 
相关问题