【发布时间】:2016-01-05 20:34:29
【问题描述】:
enter image description here我有一个 UIDatePicker,带有一个用于显示日期的标签和一个用于显示 Datepicker 的按钮。当我第一次单击该按钮时,它显示的是 datepicker,但是在我设置日期并单击完成按钮之后,日期选择器被隐藏。然后当我再次单击显示日期选择器的按钮时,它不显示。 这是我的代码:
#import "ViewController.h"
@interface ViewController ()
@property (strong, nonatomic) IBOutlet UIDatePicker *datepicker;
@property (strong, nonatomic) IBOutlet UIButton *btnDone;
@property (strong, nonatomic) IBOutlet UILabel *selectedDate;
@property (strong, nonatomic) IBOutlet UIToolbar *toolBar;
@end
@implementation ViewController
@synthesize btnDone,datepicker;
- (void)viewDidLoad {
self.datepicker.hidden = YES;
self.toolBar.hidden = YES;
[self.datepicker addTarget:self action:@selector(datePickerChanged:) forControlEvents:UIControlEventValueChanged];
}
- (void)datePickerChanged:(UIDatePicker *)datePicker
{
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd-MM-yyyy HH:mm"];
NSString *strDate = [dateFormatter stringFromDate:datePicker.date];
self.selectedDate.text = strDate;
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)show:(id)sender
{
[UIView animateWithDuration:0.5
delay:0.1
options: UIViewAnimationOptionCurveEaseIn
animations:^{
self.datepicker.hidden = NO;
self.toolBar.hidden = NO;
}
completion:^(BOOL finished){
}];
self.datepicker.hidden = NO;
self.toolBar.hidden = NO;
}
-(IBAction)HidePicker:(id)sender{
[UIView animateWithDuration:0.5
animations:^{
datepicker.frame = CGRectMake(0, -250, 320, 50);
} completion:^(BOOL finished) {
[datepicker removeFromSuperview];
[btnDone removeFromSuperview];
[_toolBar removeFromSuperview];
}];
[self.datepicker removeFromSuperview];
}
【问题讨论】:
-
你在哪里使用 'HidePicker:' 方法?
-
在 -(IBAction)HidePicker:(id)sender 方法中,您已删除 piker 表单超级视图,这就是您面临问题的原因
-
如果按钮被删除一次,点击后如何恢复视图?
-
[datepicker removeFromSuperview];它将从视图中删除日期选择器,因此您必须创建新实例并再次添加到视图中。但是为什么要删除它意味着只隐藏 -
请使用 self.datepicker.hidden = YES;而不是 [datepicker removeFromSuperview];
标签: ios objective-c iphone uidatepicker