title: UIDatePicker will not animate
body: <p>I have a view containing a segmented controller and a UIDatePicker that only shows 24-h time. I want to be able to set different times depending on what the segmented control says. So "Mon" would correspond to one time, "Tue" to another and so on. I have this working. However, I also would like to animate the picker when the user changes button on the segmented controller. As of now I have in my action method linked to the segmented controller this:</p>
  
  <pre><code>[timePicker setDate:date animate:YES];
  </code></pre>
  
  <p>Where date is a NSDate formatted like so: HH:mm</p>
  
  <p>As I said, it will change to the date but it will not animate the operation. Anyone knows why it doesn't animate?</p>
  
  <p>BTW, although I have set the formatter to be "HH:mm" if I use NSLog to print it I still get the whole 1970-01-01 +02:00:00 string printed. I assume that the only HH:mm is sent to the datepicker anyway and that it is just NSLog that prints the whole thing?</p>
  
  <p>EDIT: Here is the code for the actual view controller, and this is running SDK4</p>
  
  <pre><code>#import "FlipsideViewController.h"
  
  @implementation FlipsideViewController
  
  @synthesize delegate, times, weatherImage, condition, timePicker;
  
  
  - (void)viewDidLoad {
  
      [super viewDidLoad];
      self.view.backgroundColor = [UIColor viewFlipsideBackgroundColor];
  
      UIImage *image = [UIImage imageNamed:@"sunny.png"];
      weatherImage.image = image;
  
      WeatherClockAppDelegate *appDelegate = (WeatherClockAppDelegate *)[[UIApplication sharedApplication] delegate];
  
      times = appDelegate.times;
  
      [timePicker addTarget:self action:@selector(timePickerAction:) forControlEvents:UIControlEventValueChanged];
  
      NSDateFormatter *df = [[NSDateFormatter alloc] init];
      [df setDateFormat:@"HH:mm"];
      NSDate *sunnyDate = [df dateFromString: [times objectAtIndex:0]];
      [df release];
  
      [timePicker setDate:sunnyDate animated:NO];
  
  
  }
  
  - (IBAction)done:(id)sender {
  
      if (!busy) {
  
          [self.parentViewController dismissModalViewControllerAnimated:YES];
  
          for (NSString *s in times) {
              NSLog(@"Set times: %@", s);
          }
      }
  
  }
  
  - (IBAction)segmentedAction {
  
      NSDateFormatter *df = [[NSDateFormatter alloc] init];
      [df setDateFormat:@"HH:mm"];
  
      switch (self.condition.selectedSegmentIndex) {
  
          case 0:
  
              self.weatherImage.image = [UIImage imageNamed:@"sunny.png"];
  
              NSDate *sunnyDate = [df dateFromString: [times objectAtIndex:0]];
  
              [timePicker setDate:sunnyDate animated:YES];
  
              break;
  
          case 1:
  
              self.weatherImage.image = [UIImage imageNamed:@"cloudy.png"];
  
              NSDate *cloudyDate = [df dateFromString: [times objectAtIndex:1]];
  
              NSLog(@"Cloudydate: %@", cloudyDate);
  
              [timePicker setDate:cloudyDate animated:YES];
  
              break;
  
          case 2:
  
              self.weatherImage.image = [UIImage imageNamed:@"rain.png"];
  
              NSDate *rainyDate = [df dateFromString: [times objectAtIndex:2]];
  
              [timePicker setDate:rainyDate animated:YES];
  
              break;
  
          case 3:
  
              self.weatherImage.image = [UIImage imageNamed:@"final.png"];
  
              NSDate *finalDate = [df dateFromString: [times objectAtIndex:3]];
  
              [timePicker setDate:finalDate animated:YES];
  
              break;
  
      }
  
      [df release];
  }
  
  
  - (IBAction)timePickerAction:(id)sender {
  
      NSDateFormatter *df = [[NSDateFormatter alloc] init];
      [df setDateFormat:@"HH:mm"];
      NSString *date = [NSString stringWithFormat:@"%@", [df stringFromDate:timePicker.date]];
      NSLog(@"%@", date);
      [df release];
  
      switch (self.condition.selectedSegmentIndex) {
  
          case 0:
  
              [times replaceObjectAtIndex:0 withObject:date];
  
              break;
  
          case 1:
  
              [times replaceObjectAtIndex:1 withObject:date];
  
              break;
  
          case 2:
  
              [times replaceObjectAtIndex:2 withObject:date];         
  
              break;
  
          case 3:
  
              [times replaceObjectAtIndex:3 withObject:date];
  
              break;
  
      }
  
  }
  
  
  - (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 {
      // Release any retained subviews of the main view.
      // e.g. self.myOutlet = nil;
  }
  
  
  /*
   // Override to allow orientations other than the default portrait orientation.
   - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
   // Return YES for supported orientations
   return (interfaceOrientation == UIInterfaceOrientationPortrait);
   }
   */
  
  
  - (void)dealloc {
  
      [times release];
      [weatherImage release];
      [condition release];
      [timePicker release];
      [super dealloc];
  }
  
  
  @end
  </code></pre>