Ho del codice che funziona su una delle mie app; quindi ho copiato il codice, apportando le modifiche necessarie (es. nomi di campi di testo, ecc.) e funziona tranne quando lo sposto su UIImageView; non appare nulla. Questo è il mio codice:AGGIORNATO: L'immagine viene catturata ma non verrà visualizzata
viewController.h (solo quota di competenza dimostrato per brevità)
#import "AppDelegate.h"
#import "Books.h"
#import <AVFoundation/AVFoundation.h>
#import "MBProgressHUD.h"
#import <MobileCoreServices/MobileCoreServices.h>
#import <UIKit/UIKit.h>
@class Books;
@interface DetailViewController : UIViewController <UITextFieldDelegate,
UIPopoverControllerDelegate,
UIPickerViewDataSource,
UIPickerViewDelegate,
UIActionSheetDelegate,
UIScrollViewDelegate,
UIImagePickerControllerDelegate,
AVCaptureMetadataOutputObjectsDelegate> {
}
// UIView
@property (strong, nonatomic) IBOutlet UIView *bookDetailView;
// camera stuff
@property (strong, nonatomic) IBOutlet UIImageView *oBookImage;
- (IBAction)bOpenCamera:(UIButton *)sender;
Questo è un codice viewController.m rilevante:
#pragma mark - Camera stuff
- (IBAction)bOpenCamera:(UIButton *)sender {
if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera]) {
UIImagePickerController *imagePicker = [UIImagePickerController new];
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePicker.mediaTypes = [NSArray arrayWithObjects: (NSString *) kUTTypeImage, nil];
imagePicker.allowsEditing = YES; // MUST HAVE!
[imagePicker setDelegate: (id)self];
[self presentViewController:imagePicker animated:YES completion:nil];
}
}
-(void)image:(UIImage *)image finishedSavingWithError:(NSError *)error contextInfo:(void *)contextInfo {
if (error) {
CommonMethods *cm = [CommonMethods new];
[cm displayAlert:@"Warning!" andData:@"Failed to save book image..." andTag:0 andViewController:self];
}
}
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
self.oBookImage.contentMode = UIViewContentModeScaleAspectFill;
NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];
[self dismissViewControllerAnimated:NO completion:nil];
if ([mediaType isEqualToString:(NSString *)kUTTypeImage]) { // (abstract image data)
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
// resize it...
CGRect screenRect = CGRectMake(0, 0, 114.0, 128.0); // was 90.0, 120.0
UIGraphicsBeginImageContext(screenRect.size);
[image drawInRect:screenRect blendMode:kCGBlendModePlusDarker alpha:1];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
oBookImage.image = newImage; // show it...
}
}
-(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
[self dismissViewControllerAnimated:NO completion:nil];
}
UPDATE: ad un certo punto, mentre catturando l'immagine, ricevo questo avviso:
Snapshotting a view that ha s non è stato reso risultati in un'istantanea vuota. Assicurati che la tua vista sia stata renderizzata almeno una volta prima dell'istantanea o dello snapshot dopo gli aggiornamenti dello schermo.
Forse questo ha qualcosa a che fare con esso? Ho provato a correggere l'avviso, inutilmente.
Ho cercato problemi simili all'interno di Google e SO, ma non ho trovato nulla. Ci sto lavorando da due giorni e ho deciso che è ora di chiedere aiuto. Grazie in anticipo.
SD
non dovrebbe oBookImage.image = newImage; essere self.oBookImage.image = newImage; – Ro4ch
@ Ro4ch scusami, non ha aiutato ... Non ho questo modo nell'app di lavoro ... grazie comunque ... – SpokaneDude
Scusa, qual è il problema hai ottenuto? – Tien