ios - 如何使封闭的 UIView 与嵌入的 UIDatePicker 大小相同?

标签 ios objective-c uiview

我在 UIView 中有一个 UIDatePicker,看起来像这样(我将背景颜色更改为红色,这样它就可以在这个问题中脱颖而出):

enter image description here

我希望 UIView 适合 UIDatePicker,这样就没有红色。这是我的代码:

-(void) showModalCalendar:(int)tag {

UIViewController* popoverContent = [[UIViewController alloc] init];

UIView *popoverView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 216)]; 
popoverView.backgroundColor = [UIColor redColor];

//  the full UIDatePicker
datePicker=[[UIDatePicker alloc]init];
datePicker.frame=CGRectMake(0,44,320, 216);

//  set the locale to en-GB for testing!
NSLocale *uk = [[NSLocale alloc] initWithLocaleIdentifier:@"en_GB"];
[datePicker setLocale:uk];

if(tag == 202)  {
    datePicker.datePickerMode = UIDatePickerModeDateAndTime;
    [datePicker setTag:205];
}
else if(tag == 203)  {
    datePicker.datePickerMode = UIDatePickerModeTime;
    [datePicker setTag:206];
}

[datePicker setMinuteInterval:15];

[datePicker addTarget:self action:@selector(dateDidChange:) forControlEvents:UIControlEventValueChanged];

[popoverView addSubview:datePicker];

popoverContent.view = popoverView;

popoverController = [[UIPopoverController alloc] initWithContentViewController:popoverContent];

popoverController.delegate = (id)self;

[popoverController setPopoverContentSize:CGSizeMake(320, 264) animated:NO];

switch (tag)  {  //  displays the popover datepicker
    case 202:  //  appointment start time
        [popoverController presentPopoverFromRect:boApptStart.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES];
        break;
    case 203:  //  appointment end time
        [popoverController presentPopoverFromRect:boApptEnd.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES];
        break;
}

}

我需要做什么或改变什么?

更新 - 我们越来越近了! (我认为):D

enter image description here

最佳答案

更改此行

datePicker.frame=CGRectMake(0,44,320, 216);

到这一行

datePicker.frame = CGRectMake(0, 0, 320, 216);

然后在 View Controller 上设置 contentSizeForViewInPopover,如下所示

popoverContent.contentSizeForViewInPopover = CGSizeMake(320.0, 216.0);

关于ios - 如何使封闭的 UIView 与嵌入的 UIDatePicker 大小相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15754348/

相关文章:

ios - 听 NSNotifications 的正确方法

ios - 适用于 iOS 和路线的 Google Maps SDK

iphone - 在遇到性能问题之前,iOS 上可以同时显示多少个 UIView?

ios - CAayer - (void)drawInContext :(CGContextRef)ctx is never called

ios - 当应用程序在 ios objective-c 中处于事件状态时如何获取推送通知?

ios - Storyboard未在 Xcode 7 中编译

ios - 在应用程序 bundle 中运送包含数千个音频文件的zip

ios - 从具有最大匹配的另一个字符串中查找字符串模式(存储在数组中)

iphone - 如何获取 UIWebView 上的当前滚动位置

cocoa-touch - 动画内在内容大小的变化