I have an app that has three tabs. In tabview THREE I enters the name of an item and then takes a picture of that item. The picture is then saved into the app's documents directory and into the photo library. The strange thing is that when I take the picture the shutter release sound does't take place even though the picture is taken and saved in both places. The shutter release sound takes place but in a different place and has an unwanted effect.
In tabview ONE I have a tableview. When you choose the (pictures) row a flow view of photos taken in tabview THREE opens up. When you double tap on a picture that picture shows up full size in another view. When this large picture view opens THE SHUTTER RELEASE SOUND IS FINALY MADE.
I have researched this and haven't found any helpful suggestions.
Could someone look at my code and tell me what I've done wrong?
In tabview ONE I have a tableview. When you choose the (pictures) row a flow view of photos taken in tabview THREE opens up. When you double tap on a picture that picture shows up full size in another view. When this large picture view opens THE SHUTTER RELEASE SOUND IS FINALY MADE.
I have researched this and haven't found any helpful suggestions.
Could someone look at my code and tell me what I've done wrong?
Code:
-(IBAction)getPhoto:(id)sender
{
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
if((UIButton *) sender == save){
picker.sourceType = UIImagePickerControllerSourceTypeCamera ;}
else if((UIButton*)sender == getPhoto){
picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum ;}
[self presentModalViewController: picker animated:YES];
}
-(void)imagePickerControllerDidCancel:(UIImagePickerController *) picker
{
[picker dismissModalViewControllerAnimated:YES];
}
- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
picker.allowsEditing = YES;
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [documentPaths objectAtIndex:0];
NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:[[self imageNameTextField]text]];
fullPath = [fullPath stringByAppendingFormat:@".jpg"];
NSError *error;
//try this to documents
float actualHeight = image.size.height;
float actualWidth = image.size.width;
float imgRatio = actualWidth/actualHeight;
float maxRatio = 280.0/210.0;
if(imgRatio !=maxRatio){
if (imgRatio < maxRatio){
imgRatio =280.0/actualHeight;
actualWidth =imgRatio * actualWidth;
actualHeight = 280.0;
}
else {
imgRatio = 210.0/actualWidth;
actualHeight = imgRatio * actualHeight;
actualWidth = 210.0;
}
}
CGRect rect = CGRectMake(0.0, 0.0,actualWidth,actualHeight);
UIGraphicsBeginImageContext(rect.size);
[image drawInRect:rect];
image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[UIImageJPEGRepresentation(image, 0.5) writeToFile:fullPath atomically:YES];
NSFileManager *fileMgr = [NSFileManager defaultManager];
NSString *documentsDirectory2 = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
NSLog(@"Documents directory: %@", [fileMgr contentsOfDirectoryAtPath:documentsDirectory2 error:&error]);
UIAlertView *alert;
// Unable to save the image
if (error)
alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"ERROR", nil)
message:NSLocalizedString(@"UNABLETOSAVE", nil)
delegate:self cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
else // All is well
alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"SUCCESS!", nil)
message:NSLocalizedString(@"SAVED", nil)
delegate:self cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
[alert show];
self.photoView2.image = image;
[self dismissModalViewControllerAnimated:YES];
}