操作表中的 Pickerview 在 iPhone 中显示,但在 iPad 中不显示

Posted

技术标签:

【中文标题】操作表中的 Pickerview 在 iPhone 中显示,但在 iPad 中不显示【英文标题】:Pickerview in Actionsheet displaying in iPhone but not in iPad 【发布时间】:2014-06-10 11:07:06 【问题描述】:

首先,这是 iPhone 和 iPad 中的图片

iPhone : http://img4.hostingpics.net/pics/563577Capturedcran20140610125811.png iPad:http://img4.hostingpics.net/pics/315654Capturedcran20140610125901.png

这就是我的做法:

_questionnairePicker = [[UIPickerView alloc] initWithFrame:CGRectMake(0.0,44.0, 320.0, 250.0)];
_questionnaireActionSheet = [[UIActionSheet alloc] initWithTitle:@"Questionnaire"
                                                        delegate:self
                                               cancelButtonTitle:nil
                                          destructiveButtonTitle:nil
                                               otherButtonTitles:nil];


_questionnaireActionSheet.backgroundColor = [UIColor whiteColor];
_dateActionSheet.backgroundColor = [UIColor whiteColor];
self.selectedIndexQuestionnaire = 0;
self.questionnairePicker.delegate = self;
[self.questionnaireActionSheet addSubview:[self getToolBarActionSheet:self.questionnairePicker]];
[self.questionnaireActionSheet addSubview:self.questionnairePicker];

 -(UIToolbar *)getToolBarActionSheet:(UIView *)aPicker
    

    UIToolbar *pickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
    [pickerToolbar sizeToFit];
    NSMutableArray *barItems = [[NSMutableArray alloc] init];

    UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc]
                                initWithBarButtonSystemItem:UIBarButtonSystemItemDone
                                target:self action:@selector(pickerDoneClick:)];

    UIBarButtonItem *cancelBtn = [[UIBarButtonItem alloc]
                                  initWithBarButtonSystemItem:UIBarButtonSystemItemCancel
                                  target:self action:@selector(pickerCancelClick:)];

    UIBarButtonItem *flex = [[UIBarButtonItem alloc]
                             initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
                             target:self action:nil];


    if(aPicker.tag == 2) doneBtn.tag = cancelBtn.tag = 2;


    [barItems addObject:cancelBtn];
    [barItems addObject:flex];
    [barItems addObject:doneBtn];


    [pickerToolbar setItems:barItems animated:YES];

    return pickerToolbar;
   

那么,有人知道解决它的好方法吗?

【问题讨论】:

你找到答案了吗?我有同样的问题 【参考方案1】:

ipad 上的 UIPickerViews 没有默认大小(即宽度)。

改变

_questionnairePicker = [[UIPickerView alloc] initWithFrame:CGRectMake(0.0,44.0, 320.0, 250.0)];

_questionnairePicker = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 345, 400, 216)];

【讨论】:

同样的问题..问题不是宽度而是高度 _questionnairePicker.deleget=self;

以上是关于操作表中的 Pickerview 在 iPhone 中显示,但在 iPad 中不显示的主要内容,如果未能解决你的问题,请参考以下文章

如何在iphone中以编程方式更改按钮文本

iPhone-在 PickerView 中设置字体列表

obj-c:iPhone编程:以编程方式更改pickerview上的选择

iphone的pickerview看起来像国家选择功能

如何在 iPhone 上放大选取器视图?

没有从 PickerView 获取选定的值