//PickerView appear
-(void)ShowPickerView:(UIPickerView*)PickerViewTag
{
if(PickerViewTag.superview==nil)
{
[self.view.window addSubview:PickerViewTag];
CGRect screenRect=[[UIScreen mainScreen]applicationFrame];
CGSize pickSize=[PickerViewTag sizeThatFits:CGSizeZero];
CGRect startRect=CGRectMake(0.0, screenRect.origin.y+screenRect.size.height, pickSize.width, pickSize.height);
PickerViewTag.frame=startRect;
CGRect pickRect=CGRectMake(0.0, screenRect.origin.y+screenRect.origin.y+screenRect.size.height-pickSize.height, pickSize.width,pickSize.height);
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.3];
[UIView setAnimationDelegate:self];
PickerViewTag.frame=pickRect;
CGRect newFrame=self.view.frame;
newFrame.size.height-=PickerViewTag.frame.size.height;
self.tableView.frame=newFrame;
[UIView commitAnimations];
}
}
//PickerView Disappear
-(void)PickerViewDisappear:(UIPickerView *)PickerViewTag
{
CGRect screenRect = [[UIScreen mainScreen] applicationFrame];
CGRect endFrame=PickerViewTag.frame;
endFrame.origin.y=screenRect.origin.y+screenRect.size.height;
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.3];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(slideDown:)];
PickerViewTag.frame=endFrame;
CGRect newFrame = self.tableView.frame;
newFrame.size.height+=PickerViewTag.frame.size.height;
self.tableView.frame=newFrame;
// deselect the current table row
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
[self.tableView deselectRowAtIndexPath:indexPath animated:YES];
[PickerViewTag removeFromSuperview];
}