Wednesday 18 December 2013

UIPicker View Delegate Methods with Animations in iPhone

Code for UIPicker View Delegate Methods. In this example Picker View will comes from Bottom of the iPad Screen with animation. 

Code for .h file.

#import


@interface UICreateTeamController : UIViewController <UIPickerViewDelegate, UIPickerViewDataSource>{

    IBOutlet UIButton *btnBack;
    IBOutlet UIButton *btnSave;
    IBOutlet UIButton *btnLogo;
    UIImagePickerController *mainPicker;
  
    NSMutableArray *arrDivision;
    NSMutableArray *arrGroupLevel;
    NSMutableArray *arrSkillSet;
    IBOutlet UILabel *lblDivision;
    IBOutlet UILabel *lblGroupLevel;
    IBOutlet UILabel *lblSkillSet;
  
    IBOutlet UIView *viewPicker;
    IBOutlet UIPickerView *pickerMain;
    IBOutlet UIButton *btnDone;
    IBOutlet UIButton *btnDivision;
    IBOutlet UIButton *btnGroupLevel;
    IBOutlet UIButton *btnSkillSet;
}
@property (nonatomic, assign) UIButton *btnLogo;

-(IBAction)btnSave_TouchUpInside:(id)sender;
-(IBAction)btnBack_TouchUpIndise:(id)sender;
-(IBAction)btnLogo_TouchUpInside:(id)sender;
-(IBAction)btnDone_TouchUpInside:(id)sender;
-(IBAction)btnDivision_TouchUpInside:(id)sender;
-(IBAction)btnGroupLevel_TouchUpInside:(id)sender;
-(IBAction)btnSkillSet_TouchUpInside:(id)sender;
- (void)setView:(UIView*)view MovedUp:(BOOL)movedUp;
- (void)setViewMovedUp:(BOOL)movedUp;

@end


Code for .m file.
#import "UICreateTeamController.h"

@implementation UICreateTeamController
@synthesize btnLogo;


// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
    [super viewDidLoad];
    [self setViewMovedUp:NO];
    [self setView:viewPicker MovedUp:NO];
    arrDivision = [[NSMutableArray alloc]initWithObjects:@"East Division",@"North Division",@"West Division",@"South Division",nil];
    arrGroupLevel = [[NSMutableArray alloc]initWithObjects:@"Under 14",@"Under 16",@"Under 19",nil];
    arrSkillSet = [[NSMutableArray alloc]initWithObjects:@"Defensive",@"Aggerasive",nil];
}

-(IBAction)btnSave_TouchUpInside:(id)sender{

    [self.navigationController popViewControllerAnimated:YES];
}
-(IBAction)btnBack_TouchUpIndise:(id)sender{

    [self.navigationController popViewControllerAnimated:YES];
}

-(IBAction)btnLogo_TouchUpInside:(id)sender{
 
    UIImagePickerController *picker = [[UIImagePickerController alloc] init];
    picker.delegate = self;
    picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
    picker.sourceType =UIImagePickerControllerSourceTypePhotoLibrary;
    [self presentModalViewController:picker animated:YES]; 
}

- (void)setView:(UIView*)view MovedUp:(BOOL)movedUp{
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.3];
    // Make changes to the view's frame inside the animation block. They will be animated instead
    // of taking place immediately.
    CGRect rect = view.frame;
    if (movedUp)
    {
        // If moving up, not only decrease the origin but increase the height so the view
        rect.origin.y = (self.view.frame.size.height + self.view.frame.origin.y) - view.frame.size.height;
    }
    else
    {
        // If moving down, not only increase the origin decrease the height.
        rect.origin.y = (self.view.frame.size.height + self.view.frame.origin.y) + view.frame.size.height;
    }
    view.frame = rect;
 
    [UIView commitAnimations];
}

- (void)setViewMovedUp:(BOOL)movedUp
{
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.3];
    // Make changes to the view's frame inside the animation block. They will be animated instead
    // of taking place immediately.
    CGRect rect = self.view.frame;
    if (movedUp){
        // If moving up, not only decrease the origin but increase the height so the view
        // covers the entire screen behind the keyboard.
        //rect.origin.y -= kOFFSET_FOR_KEYBOARD;
        //rect.size.height += kOFFSET_FOR_KEYBOARD;
        rect.origin.y = self.view.frame.origin.y - 216;
    }
    else
    {
        // If moving down, not only increase the origin decrease the height.
        //rect.origin.y += kOFFSET_FOR_KEYBOARD;
        //rect.size.height -= kOFFSET_FOR_KEYBOARD;
        if(rect.origin.y <0)
            rect.origin.y = self.view.frame.origin.y + 216;
    }
 
    self.view.frame = rect;
    [UIView commitAnimations];
}

-(IBAction)btnDone_TouchUpInside:(id)sender{

    [self setViewMovedUp:NO];
    [self setView:viewPicker MovedUp:NO];
}

-(IBAction)btnDivision_TouchUpInside:(id)sender{

    [self setViewMovedUp:NO];
    [pickerMain selectRow:0 inComponent:0 animated:YES];
    [pickerMain reloadComponent:0];
    [self setView:viewPicker MovedUp:YES];
 
}
-(IBAction)btnGroupLevel_TouchUpInside:(id)sender{

    [self setViewMovedUp:NO];
    [pickerMain selectRow:0 inComponent:0 animated:YES];
    [pickerMain reloadComponent:0];
    [self setView:viewPicker MovedUp:YES];
}
-(IBAction)btnSkillSet_TouchUpInside:(id)sender{

    [self setViewMovedUp:NO];
    [pickerMain selectRow:0 inComponent:0 animated:YES];
    [pickerMain reloadComponent:0];
    [self setView:viewPicker MovedUp:YES];
}

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
 
    [btnLogo setBackgroundImage: [info objectForKey:@"UIImagePickerControllerOriginalImage"] forState:UIControlStateNormal];
    [picker dismissModalViewControllerAnimated:YES]; 
    [picker release];
}

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    lblDivision.text = [arrDivision objectAtIndex:[pickerView selectedRowInComponent:0]];
    lblGroupLevel.text = [arrGroupLevel    objectAtIndex:[pickerView selectedRowInComponent:1]];
    lblSkillSet.text = [arrSkillSet objectAtIndex:[pickerView selectedRowInComponent:2]];
}

-(NSString *) pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    NSString *returnStr;
    if(component == 0){
        returnStr = [arrDivision objectAtIndex:row];
    }
    else if(component == 1){
        returnStr = [arrGroupLevel objectAtIndex:row];
    }
    else if(component == 2){
        returnStr = [arrSkillSet objectAtIndex:row];
    }
    return returnStr; 
}

-(CGFloat) pickerView:(UIPickerView *) pickerView widthForComponent:(NSInteger)component{
 
    return 340;
}

-(CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component{
    return 40.0;
}

-(NSInteger) pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
 
 
    int intcount;
    if(component == 0){
        intcount = 4;
    }
    else if(component == 1){
        intcount = 3;
    }
    else if(component == 2){
        intcount = 2;
    }
    return intcount;
}

-(NSInteger) numberOfComponentsInPickerView:(UIPickerView *)pickerView{
    return 3;
}


- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    // Overriden to allow any orientation.
    return YES;
}


- (void)didReceiveMemoryWarning {
    // Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];
 
    // Release any cached data, images, etc that aren't in use.
}


- (void)viewDidUnload {
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}


- (void)dealloc {
    [super dealloc];
}


@end

No comments:

Post a Comment

Comment