我试图在点击文本字段时关注这篇文章显示日期选择器,当我到达“在 XIB 中,拉出 UIToolbar 和 UIDatePicker 但不将其附加到视图”的地步时,我迷路了。我正在使用情节提要,而他正在使用 xib。那是问题吗?xib 对我来说不是一个选择。那么有没有办法将日期选择器拖出,但不附加到视图?
问问题
449 次
3 回答
0
可能对你有帮助..
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
dateActionSheet = [[UIActionSheet alloc]initWithTitle:@"Select Your Date of Birth" delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil , nil];
dateActionSheet.actionSheetStyle = UIActionSheetStyleBlackOpaque;
UIDatePicker *datePicker = [[UIDatePicker alloc] init];
datePicker.datePickerMode = UIDatePickerModeDate;
[datePicker addTarget:self action:@selector(datePickerValueChangedd:) forControlEvents:UIControlEventValueChanged ];
NSDateFormatter *df = [[NSDateFormatter alloc] init];
df.dateStyle = NSDateFormatterMediumStyle;
[dateActionSheet addSubview:datePicker];
[dateActionSheet addSubview:self.datePickerView];
UIToolbar *tools=[[UIToolbar alloc]initWithFrame:CGRectMake(0, 0,320,40)];
tools.barStyle=UIBarStyleBlackOpaque;
[dateActionSheet addSubview:tools];
UIBarButtonItem *doneButton=[[UIBarButtonItem alloc]initWithTitle:@"Done" style:UIBarButtonItemStyleBordered target:self action:@selector(btnActinDoneClicked)];
doneButton.imageInsets=UIEdgeInsetsMake(200, 6, 50, 25);
UIBarButtonItem *flexSpace= [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
NSArray *array = [[NSArray alloc]initWithObjects:flexSpace,flexSpace,doneButton,nil];
[tools setItems:array];
//picker title
UILabel *lblPickerTitle=[[UILabel alloc]initWithFrame:CGRectMake(60,8, 200, 25)];
lblPickerTitle.text=@"Select Date of Birth";
lblPickerTitle.backgroundColor=[UIColor clearColor];
lblPickerTitle.textColor=[UIColor whiteColor];
lblPickerTitle.textAlignment = NSTextAlignmentCenter;
lblPickerTitle.font=[UIFont boldSystemFontOfSize:15];
[tools addSubview:lblPickerTitle];
//cell.detailTextLabel.text = [self datePickerValueChangedd:datePicker];
[dateActionSheet showFromRect:CGRectMake(0,480, 320,215) inView:self.view animated:YES];
[dateActionSheet setBounds:CGRectMake(0,0, 320, 411)];
}
-(void)btnActinDoneClicked {
[dateActionSheet dismissWithClickedButtonIndex:1 animated:YES];
[dateActionSheet removeFromSuperview];
}
-(void)datePickerValueChangedd:(UIDatePicker*) datePicker
{
Youytextfield.text = (NSString *)datePicker.date;
}
于 2013-08-05T09:39:58.297 回答
0
故事板的不同之处在于您将为每个视图使用一个 XIB 文件(也称为 NIB)。但是您应该能够遵循任何指示。
在 XIB 中,拉出 UIToolbar 和 UIDatePicker 但不要将其附加到视图。
我相信他的意思是不要像使用按钮那样连接到 ViewController(例如 IBAction)
由于您在点击文本字段时显示,因此您必须以编程方式进行。
您实际上不需要将其添加到您的视图中。
于 2013-08-05T02:27:52.490 回答
0
您可以创建一个视图控制器,底部有一个日期选择器,顶部有一个关闭按钮。点击文本字段时,您可以模态显示该视图控制器。
为 viewcontroller 设置委托方法: closeButtonClicked: 和 dateSelected: ,并在主控制器中实现这些委托方法。
此外,您可以通过添加具有特定 alpha 的 datePicker 的 viewcontroller 背景颜色来“阻止”屏幕,以获得良好的效果。
我发现这是最简单的方法。不需要笔尖
于 2013-08-05T05:28:10.197 回答