UIDatePicker自定义

我已经定制了UIDatePicker到一个级别,我将它添加到UIAlertView。

在这里输入图像说明

但是我在dateselect器的底部和顶部获得了一个黑色,如何删除它。 我希望dateselect器整洁干净。

我用来实现这个的代码:

UIDatePicker *datePicker = [[UIDatePicker alloc] init]; datePicker.frame=CGRectMake(20, 45.0, 240.0, 150.0); datePicker.minimumDate=[NSDate date]; //Forget about this logic. NSString *alertTitleString=@""; if(self.presentingViewController !=nil) { alertTitleString=@"Select Date and Time"; [datePicker setDatePickerMode:UIDatePickerModeDateAndTime]; } else { alertTitleString=@"Select Time"; [datePicker setDatePickerMode:UIDatePickerModeTime]; } [datePicker setDate:[NSDate date]]; UIView *view = [[datePicker subviews] objectAtIndex:0]; [view setBackgroundColor:[UIColor clearColor]]; // hide the first and the last subviews [[[view subviews] objectAtIndex:0] setHidden:YES]; [[[view subviews] lastObject] setHidden:YES]; UIAlertView *eventStartDateAlert = [[UIAlertView alloc] initWithTitle:alertTitleString message:@"\n\n\n\n\n\n\n\n" delegate:self cancelButtonTitle:NSLocalizedString(@"OK", @"Ok") otherButtonTitles:nil]; eventStartDateAlert.delegate = self; [eventStartDateAlert addSubview:datePicker]; [eventStartDateAlert show]; 

基本上你想要做的是去除顶部和底部的梯度,对不对?

至less在iOS 5和iOS 6中,这是行得通的。

 [view.subviews[5] setHidden:YES]; [view.subviews[11] setHidden:YES]; [view.subviews[17] setHidden:YES];