2010-09-02 104 views

回答

8

你应该创建一个UIView来保存选择器和你需要的按钮,然后当你需要输入日期时将该视图动画到可见屏幕中,当点击该按钮时将其动画化。我已经使用了这样的方案,其中按钮实际上是日期标签,并且点击开始或结束日期编辑。

+0

thnx。我一直在想,只是想确保 – humblePilgrim 2010-09-02 08:09:32

+0

Thanx我得到它的工作 – humblePilgrim 2010-09-04 04:21:31

8

我张贴的代码,请声明是不宣而按它们的类型休息,你会完成它。希望这会有所帮助的对象...

#pragma mark DatePickerView 
UIImagePickerController* imagePickerController; 
UIDatePicker *theDatePicker; 
UIToolbar* pickerToolbar; 
UIActionSheet* pickerViewDate; 
-(void)DatePickerView 
{ 
    pickerViewDate = [[UIActionSheet alloc] initWithTitle:@"How many?" 
               delegate:self 
             cancelButtonTitle:nil 
            destructiveButtonTitle:nil 
             otherButtonTitles:nil]; 

    theDatePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0.0, 44.0, 0.0, 0.0)]; 
    theDatePicker.datePickerMode = UIDatePickerModeDate; 

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setFormatterBehavior:NSDateFormatterBehavior10_4]; 
    [dateFormatter setLocale:[[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]autorelease]]; 
    [dateFormatter setDateFormat:@"dd MMM yyyy"]; 
    //[dateFormatter setDateFormat:@"MM/dd/YYYY"]; 

    //[theDatePicker release]; 
    [theDatePicker addTarget:self action:@selector(dateChanged) forControlEvents:UIControlEventValueChanged]; 


    pickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)]; 
    pickerToolbar.barStyle=UIBarStyleBlackOpaque; 
    [pickerToolbar sizeToFit]; 
    NSMutableArray *barItems = [[NSMutableArray alloc] init]; 
    UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(DatePickerDoneClick)]; 
    [barItems addObject:flexSpace]; 

    [pickerToolbar setItems:barItems animated:YES];  
    [pickerViewDate addSubview:pickerToolbar]; 
    [pickerViewDate addSubview:theDatePicker]; 
    [pickerViewDate showInView:self.view]; 
    [pickerViewDate setBounds:CGRectMake(0,0,320, 464)]; 
} 

-(IBAction)dateChanged{ 

    NSDateFormatter *FormatDate = [[NSDateFormatter alloc] init]; 
    [FormatDate setLocale: [[[NSLocale alloc] 
           initWithLocaleIdentifier:@"en_US"] autorelease]]; 
    [FormatDate setDateFormat:@"MM/dd/YYYY"]; 
    SelectedTextField.text = [FormatDate stringFromDate:[theDatePicker date]]; 
} 


-(BOOL)closeDatePicker:(id)sender{ 
    [pickerViewDate dismissWithClickedButtonIndex:0 animated:YES]; 
    [pickerToolbar release]; 
    [pickerViewDate release]; 
    [SelectedTextField resignFirstResponder]; 


    return YES; 
} 

-(IBAction)DatePickerDoneClick{ 
    [self closeDatePicker:self]; 
    tableview.frame=CGRectMake(0, 44, 320, 416); 

} 

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

// returns the number of rows 
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{ 
    return 30; 
    // return [pickerViewArray count]; 
} 

做的修改按要求。这是100%运行的代码在类似的应用几乎使用我

编码快乐......