hi i am new to iPhone. what i need is display the name under selected image at imageview from grid but it displayed under gridview pls help me i tried this from one weak onwards plsssss plss help me this is my code
// // CustomImagePicker.h // CustomImagePicker // // Created by Ray Wenderlich on 1/27/10. // Copyright 2010 Ray Wenderlich. All rights reserved. //
import
@interface CustomImagePicker : UIViewController { NSMutableArray *_images; NSMutableArray *_thumbs; UIImage *_selectedImage;
}
@property (nonatomic, retain) NSMutableArray *images; @property (nonatomic, retain) NSMutableArray *thumbs; @property (nonatomic, retain) UIImage *selectedImage;
(IBAction)buttonClicked:(id)sender;
(void)addImage:(UIImage *)image;
@end
// // CustomImagePicker.m // CustomImagePicker // // Created by Ray Wenderlich on 1/27/10. // Copyright 2010 Ray Wenderlich. All rights reserved. //
import "CustomImagePicker.h"
import "CustomImagePickerAppDelegate.h"
import "UIImageExtras.h"
@implementation CustomImagePicker @synthesize images = _images; @synthesize thumbs = _thumbs; @synthesize selectedImage = _selectedImage;
(id) init { if ((self = [super init])) { _images = [[NSMutableArray alloc] init]; _thumbs = [[NSMutableArray alloc] init];
} return self; }
(void)addImage:(UIImage *)image { [_images addObject:image]; [_thumbs addObject:[image imageByScalingAndCroppingForSize:CGSizeMake(80, 80)]]; }
(void)viewDidLoad {
// Create view UIScrollView *view = [[UIScrollView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
int row = 0;
int column = 0; for(int i = 0; i < _thumbs.count; ++i) {
UIImage *thumb = [_thumbs objectAtIndex:i]; UIButton * button = [UIButton buttonWithType:UIButtonTypeCustom]; button.frame = CGRectMake(column*100+24, row*80+12, 70, 70); [button setImage:thumb forState:UIControlStateNormal]; [button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside]; button.tag = i; [view addSubview:button]; if (column == 2) { column = 0; row++; } else { column++; }
}
[view setContentSize:CGSizeMake(320, (row+1) * 80 + 10)];
self.view = view; [view release];
}
(IBAction)buttonClicked:(id)sender { UIButton *button = (UIButton *)sender;
self.selectedImage = [_images objectAtIndex:button.tag];
CustomImagePickerAppDelegate *delegate = [[UIApplication sharedApplication] delegate]; [delegate.navController popViewControllerAnimated:YES];
}
(void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; }
(void)viewDidUnload { }
(void)dealloc { self.images = nil; self.thumbs = nil; self.selectedImage = nil; [super dealloc]; }
@end
// // CustomImagePickerViewController.h // CustomImagePicker // // Created by Ray Wenderlich on 1/27/10. // Copyright Ray Wenderlich 2010. All rights reserved. //
import
@class CustomImagePicker;
@interface CustomImagePickerViewController : UIViewController { UIImageView *_imageView; CustomImagePicker *_imagePicker; NSTimer *atimer;
}
@property (nonatomic, retain) IBOutlet UIImageView *imageView; @property (nonatomic, retain) CustomImagePicker *imagePicker; @property (nonatomic, retain) NSTimer *atimer;
@end
// // CustomImagePickerViewController.m // CustomImagePicker // // Created by Ray Wenderlich on 1/27/10. // Copyright Ray Wenderlich 2010. All rights reserved. //
import "CustomImagePickerViewController.h"
import "CustomImagePicker.h"
import "CustomImagePickerAppDelegate.h"
@implementation CustomImagePickerViewController
@synthesize imageView = _imageView; @synthesize imagePicker = _imagePicker; @synthesize atimer;
(void)viewDidLoad {
// Initialize image picker _imagePicker = [[CustomImagePicker alloc] init];
// Add images to the picker
// Note that this can take time due to resizing for thumbnails, so for production you // should either: a) have full-size and thumbs for each image pre-made, or: // b) put a loading indicator in as this code runs
[_imagePicker addImage:[UIImage imageNamed:@"bear_large.jpg"]]; [_imagePicker addImage:[UIImage imageNamed:@"bafflo_large.jpg"]]; [_imagePicker addImage:[UIImage imageNamed:@"cat_large.jpg"]]; [_imagePicker addImage:[UIImage imageNamed:@"camel_large.jpg"]]; [_imagePicker addImage:[UIImage imageNamed:@"cow_large.jpg"]]; [_imagePicker addImage:[UIImage imageNamed:@"dog_large.jpg"]]; [_imagePicker addImage:[UIImage imageNamed:@"deer_large.jpg"]]; [_imagePicker addImage:[UIImage imageNamed:@"elephant_large.jpg"]]; [_imagePicker addImage:[UIImage imageNamed:@"fox_large.jpg"]]; [_imagePicker addImage:[UIImage imageNamed:@"goat.jpg"]]; [_imagePicker addImage:[UIImage imageNamed:@"gorilla_large.jpg"]]; [_imagePicker addImage:[UIImage imageNamed:@"horse.jpg"]]; [_imagePicker addImage:[UIImage imageNamed:@"frog.jpg"]]; [_imagePicker addImage:[UIImage imageNamed:@"lion_large.jpg"]]; [_imagePicker addImage:[UIImage imageNamed:@"monkey_large.jpg"]]; [_imagePicker addImage:[UIImage imageNamed:@"rabbit_large.jpg"]];
[_imagePicker addImage:[UIImage imageNamed:@"rahino_large.jpg"]]; [_imagePicker addImage:[UIImage imageNamed:@"rat.jpg"]];
[_imagePicker addImage:[UIImage imageNamed:@"snake.jpg"]]; [_imagePicker addImage:[UIImage imageNamed:@"squrillel.jpg"]];
[_imagePicker addImage:[UIImage imageNamed:@"tiger_large.jpg"]];[_imagePicker addImage:[UIImage imageNamed:@"zebra_large.jpg"]];
CustomImagePickerAppDelegate *delegate = [[UIApplication sharedApplication] delegate]; UINavigationController *navController = [delegate navController]; [navController pushViewController:_imagePicker animated:YES]; self.navigationController.navigationBarHidden=YES;
[super viewDidLoad];
atimer = [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(runscheduledTask) userInfo:nil repeats:YES];
}
(void)runscheduledTask {
NSLog(@"timer"); @try {
CustomImagePickerAppDelegate *delegate = [[UIApplication sharedApplication] delegate]; UINavigationController *navController = [delegate navController]; [navController pushViewController:_imagePicker animated:YES];
}
@catch (NSException * e){ } }
(void)viewWillAppear:(BOOL)animated {
_imageView.image = _imagePicker.selectedImage;
}
- (void)viewDidUnload { self.imageView = nil;
}
- (void)dealloc { [_imageView release]; _imageView = nil; [_imagePicker release]; _imagePicker = nil; [atimer release]; [atimer invalidate]; [super dealloc]; }
@end
// // CustomImagePickerAppDelegate.h // CustomImagePicker // // Created by Ray Wenderlich on 1/27/10. // Copyright Ray Wenderlich 2010. All rights reserved. //
import
@class CustomImagePickerViewController;
@interface CustomImagePickerAppDelegate : NSObject { UIWindow *window; UINavigationController *navController; }
@property (nonatomic, retain) IBOutlet UIWindow *window; @property (nonatomic, retain) IBOutlet UINavigationController *navController;
@end
// // CustomImagePickerAppDelegate.m // CustomImagePicker // // Created by Ray Wenderlich on 1/27/10. // Copyright Ray Wenderlich 2010. All rights reserved. //
import "CustomImagePickerAppDelegate.h"
import "CustomImagePickerViewController.h"
@implementation CustomImagePickerAppDelegate
@synthesize window; @synthesize navController;
(void)applicationDidFinishLaunching:(UIApplication *)application {
// Override point for customization after app launch
[window addSubview:navController.view]; [window makeKeyAndVisible]; }(void)dealloc { [navController release]; [window release]; [super dealloc]; }
@end
// From cscade on iphonedevbook.com forums // And Bjorn Sallarp on blog.sallarp.com
@interface UIImage (Extras)
- (UIImage*)imageByScalingAndCroppingForSize:(CGSize)targetSize;
@end
import "UIImageExtras.h"
@implementation UIImage (Extras)
(UIImage*)imageByScalingAndCroppingForSize:(CGSize)targetSize { UIImage *sourceImage = self; UIImage *newImage = nil;
CGSize imageSize = sourceImage.size; CGFloat width = imageSize.width; CGFloat height = imageSize.height; CGFloat targetWidth = targetSize.width; CGFloat targetHeight = targetSize.height; CGFloat scaleFactor = 0.0; CGFloat scaledWidth = targetWidth; CGFloat scaledHeight = targetHeight; CGPoint thumbnailPoint = CGPointMake(0.0,0.0);if (CGSizeEqualToSize(imageSize, targetSize) == NO) { CGFloat widthFactor = targetWidth / width; CGFloat heightFactor = targetHeight / height;
if (widthFactor > heightFactor) scaleFactor = widthFactor; // scale to fit height else scaleFactor = heightFactor; // scale to fit width scaledWidth = width * scaleFactor; scaledHeight = height * scaleFactor; // center the image if (widthFactor > heightFactor) { thumbnailPoint.y = (targetHeight - scaledHeight) * 0.5; } else if (widthFactor < heightFactor) { thumbnailPoint.x = (targetWidth - scaledWidth) * 0.5; }
}
UIGraphicsBeginImageContext(targetSize); // this will crop
CGRect thumbnailRect = CGRectZero; thumbnailRect.origin = thumbnailPoint; thumbnailRect.size.width = scaledWidth; thumbnailRect.size.height = scaledHeight;
[sourceImage drawInRect:thumbnailRect];
newImage = UIGraphicsGetImageFromCurrentImageContext(); if(newImage == nil) NSLog(@"could not scale image");
//pop the context to get back to the default UIGraphicsEndImageContext(); return newImage; }
@end
thank u very much in advance