【问题标题】:Adding a button to UIDatePicker向 UIDatePicker 添加按钮
【发布时间】:2010-09-02 05:18:23
【问题描述】:

是否可以向 UIDatePickerView 添加“完成”按钮,以便用户可以点击它来关闭视图。

【问题讨论】:

    标签: iphone xcode uikit


    【解决方案1】:

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

    【讨论】:

    • 谢谢。我也是这么想的。只是想确认一下
    【解决方案2】:

    我正在发布代码请根据其类型声明未声明的对象Rest你会完成它。希望这会有所帮助......

    #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% 运行代码

    编码愉快...

    【讨论】:

      【解决方案3】:

      这是一个带有取消/完成按钮的 UIDatePicker 演示项目:https://github.com/lenhhoxung86/CustomDatePicker

      【讨论】:

        【解决方案4】:

        一个更可定制的 UIToolbar 和 UIDatePicker 项目。可能会有所帮助: https://github.com/anatoliyv/SMDatePicker

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-12-16
          • 2021-03-23
          相关资源
          最近更新 更多