[英]How to change image of UIImageView that is inside a UIButton programmatically?
[英]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
。 UIImageView
和UIButton
聲明為@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.