簡體   English   中英

如何從uiimageview op uibutton中刪除圖像

[英]How to remove image from uiimageview op uibutton

我用placeholder.png圖像初始化UIImageVIew 當我嘗試使用UIImagePicker控制器中的圖像更改placeholder.png時,它不會更改。

employeePhoto=[[UIImageView alloc] init];
[employeePhoto setFrame:CGRectMake(50, 50, 150, 150)];
[employeePhoto setImage:[UIImage imageNamed:@"placeholder.png"]];
[self.view addSubview:employeePhoto];

UIImagePickerController委托中

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    UIImage *image=[info valueForKey:@"UIImagePickerControllerOriginalImage"];

    [employeePhoto setImage:nil]; // or employeePhoto.image=nil;
    [employeePhoto setImage:image];

    [picker dismissViewControllerAnimated:YES completion:NULL];
}

但在解雇了UIImageView之后, UIImageView改變。 我也試過UIButton而不是UIImageView UIImageViewUIButton聲明為@property(nonatomic, retain) ,我正在使用xcode 4.6.1。

請幫我解決這個問題......

提前致謝.....

請嘗試以下代碼:

@property(nonatomic,retain) UIImageView *employeePhoto;
@property(nonatomic,retain) UIImagePickerController *imagePicker;


/* Alloc and Init UIImageView and AddSubview to UIView */

self.employeePhoto = [[UIImageView alloc] init] autorelease];
[self.employeePhoto setFrame:CGRectMake(50, 50, 150, 150)];
[self.employeePhoto setImage:[UIImage imageNamed:@"placeholder.png"]];
[self.view addSubview:self.employeePhoto];

 /* Alloc and Init UIImagePickerController in ViewDidLoad */ 

 self.imagePicker = [[UIImagePickerController alloc] init] autorelease];
 self.imagePicker.delegate = self;
 self.imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
 self.imagePicker.mediaTypes =[UIImagePickerController availableMediaTypesForSourceType:self.imagePicker.sourceType];
 [self presentViewController:self.imagePicker animated:YES completion:nil];

/* Write UIImagePickerController Delegate Method */ 

- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    UIImage *original = [info objectForKey:UIImagePickerControllerOriginalImage];
    self.employeePhoto.image = original;
    [picker dismissViewControllerAnimated:YES completion:nil];

}

如果您遇到任何問題,請嘗試使用此代碼並告知我們。 謝謝。

試試這樣:

- (void) imagePickerController: (UIImagePickerController*) picker
 didFinishPickingMediaWithInfo: (NSDictionary*) info
{
    UIImage*image = [info valueForKey: UIImagePickerControllerOriginalImage];
    [employeePhoto setImage: image];

    dispatch_async(dispatch_get_main_queue(), ^{
        [picker dismissViewControllerAnimated: YES 
                                   completion: NULL];
    });
}

用這個:

UIImage *image=[info objectForKey:UIImagePickerControllerOriginalImage];

代替

UIImage *image=[info valueForKey:@"UIImagePickerControllerOriginalImage"];

並在viewDidLoad中分配employeePhoto

如果你做了

piker.allowsImageEditing = NO;

然后

UIImage *image=[info objectForKey:UIImagePickerControllerOriginalImage];

如果你做了

piker.allowsImageEditing = YES;

然后用

UIImage *image=[info objectForKey:UIImagePickerControllerEditedImage];

mabe它會幫助你。 但首先檢查你是否會在didFinishPickingMediaWithInfo中獲得圖像。

在使用imageview = nil后,使用-(void)imagePickerController:(UIImagePickerController *)picker...方法。

再次分配像下面的imageview ...

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    UIImage     *image=[info valueForKey:@"UIImagePickerControllerOriginalImage"];

    [employeePhoto setImage:nil]; // or employeePhoto.image=nil;
    employeePhoto=[[UIImageView alloc] init];
    [employeePhoto setFrame:CGRectMake(50, 50, 150, 150)];
    [employeePhoto setImage:image];

    [picker dismissViewControllerAnimated:YES completion:NULL];
}

讓我知道它的工作與否!

快樂的編碼!!!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM