UIPicker和UIActionsheet不再适用于iOS7

时间:2013-10-01 20:14:19

标签: ios ios7 uipickerview

嗨我的UI Picker不再适用于iOS7,它弹出但是它是空白的。只发生在iOS7上。

//picker
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
animationsLabel.text = [optionsArray objectAtIndex:[picker selectedRowInComponent:0]];

if (pickerView==animationsPicker) {
    animationsLabel.text = [optionsArray objectAtIndex:[animationsPicker selectedRowInComponent:0]];
}

}
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
    return 1;
}

-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
    return [optionsArray count];
}

-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
   return [optionsArray objectAtIndex:row];
   NSLog(@"title options array %lu",(unsigned long)optionsArray.count);
}

行动:

-(IBAction)animationActionSheet:(id)sender {

UIActionSheet *selectPopup = [[UIActionSheet alloc] initWithTitle:@"\n\n\n\n\n\n\n\n"
                                                        delegate:nil
                                               cancelButtonTitle:nil
                                          destructiveButtonTitle:nil
                                               otherButtonTitles:nil];

[selectPopup showInView:self.view];

optionsArray = [[NSMutableArray alloc] initWithObjects:@"1",@"2",@"3",@"4",@"6",@"5",@"7",@"8",@"9", nil];

// Create picker
animationsPicker = [[UIPickerView alloc] initWithFrame:CGRectMake(10, 160, 320, 100)];
animationsPicker.showsSelectionIndicator = YES;
[self.view addSubview:animationsPicker];
animationsPicker.delegate = self;
animationsPicker.dataSource = self;
[selectPopup addSubview:animationsPicker];

// Animate picker opening
[UIView beginAnimations:nil context:nil];
[selectPopup setBounds:CGRectMake(0, 0, 320, 485)];
[UIView commitAnimations];
}

这是我到目前为止所尝试的。以前在Action表中显示选择器从来没有问题,但现在它是空白的。我想知道其他人是否遇到过这个问题,或者你能看到任何错误吗?我打印了与拾取器有关的一切。

3 个答案:

答案 0 :(得分:5)

有人告诉我,将拣选员放入行动表是不合标准的。我在iOS 6中从未遇到任何问题,但在iOS 7中,我遇到了错误。我切换到UIView而不是我的选择器的动作表,它工作正常。我希望这会有所帮助。

答案 1 :(得分:2)

根据文档,不建议在操作表中添加子视图。

  

“Subclassing Notes   UIActionSheet不是设计为子类,也不应该为其层次结构添加视图。如果您需要提供比UIActionSheet API提供的更多自定义的工作表,您可以创建自己的工作表并使用presentViewController以模态方式呈现它:animated:completion :.“

Apple正在加强他们对Action Sheets的使用......他们提高了这个在iOS 7中工作的赌注,这意味着你必须围绕它进行编码。

答案 2 :(得分:0)

看看我做的这个项目。这与在操作表https://github.com/DiscoverPioneer/PickerSlider

中包含选择器几乎完全相同