Reputation: 11855
I am showing a UIDatePicker
on a universal app. On iPhone it shows fine, on iPad it shows only the bottom portion. I am using UIActionSheet
in other portions of the app which display fine on both. How do I get it to display properly on the iPad?
- (void)showDatePicker
{
actionSheet = [[UIActionSheet alloc] initWithTitle:nil
delegate:nil
cancelButtonTitle:nil
destructiveButtonTitle:nil
otherButtonTitles:nil];
[actionSheet setActionSheetStyle:UIActionSheetStyleBlackTranslucent];
datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 40, 0, 0)];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSString *startTimeString = [MathFunctions minutesToTimeString:[appointment.start_time integerValue]];
[dateFormatter setDateFormat:@"yyyyMMdd h:mm a"];
[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]];
NSString *dateTimeString = [NSString stringWithFormat:@"%@ %@", appointment.date, startTimeString];
datePicker.date = [dateFormatter dateFromString:dateTimeString];
[actionSheet addSubview:datePicker];
UISegmentedControl *closeButton = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObject:@"Done"]];
closeButton.momentary = YES;
closeButton.frame = CGRectMake(260, 7.0f, 50.0f, 30.0f);
closeButton.segmentedControlStyle = UISegmentedControlStyleBar;
closeButton.tintColor = [UIColor blackColor];
[closeButton addTarget:self action:@selector(changeDate:) forControlEvents:UIControlEventValueChanged];
[actionSheet addSubview:closeButton];
[actionSheet showInView:self.view];
[actionSheet setBounds:CGRectMake(0, 0, 320, 485)];
}
Upvotes: 2
Views: 1039
Reputation: 3803
Check this answer. This is what you want to do with your code.
Displaying a UIDatePicker inside of a UIPopover
UIDatePicker not rendering properly for certain modes in UIPopoverController
Upvotes: 0
Reputation: 130102
It's easy, action sheet is supposed to have only buttons inside, not other components. Its size is probably calculated from the number of buttons. You are not adding any buttons so the size of the action sheet is zero.
Use UIPopoverController
instead of UIActionSheet
.
Upvotes: 1