UIPicker and UIActionsheet no longer working iOS7

我怕爱的太早我们不能终老 提交于 2019-12-12 01:28:07

问题


Hi My UI Picker no longer works on iOS7, it pops up but it is blank. Only happened on 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);
}

And the action:

-(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];
}

This is what I have tried so far. There was never a problem displaying the picker in the an Action sheet before, but now it is blank. Im wondering did anyone else come across this problem, or can you see any errors? I printed everything to do with the picker.


回答1:


I was told that putting pickers in Action Sheets was non-standard. I never had any problems doing this in iOS 6, but in iOS 7, I got errors. I switched to UIView instead of action sheets for my pickers and it works fine. I hope this helps.




回答2:


Adding subviews is not recommended for the action sheet, per documentation.

"Subclassing Notes UIActionSheet is not designed to be subclassed, nor should you add views to its hierarchy. If you need to present a sheet with more customization than provided by the UIActionSheet API, you can create your own and present it modally with presentViewController:animated:completion:."

Apple is reinforcing their usage for Action Sheets....and they upped the ante for this to work in iOS 7, which means you have to code around it.




回答3:


Check out this project I made. It's practically the same thing as having a picker inside an action sheet https://github.com/DiscoverPioneer/PickerSlider



来源:https://stackoverflow.com/questions/19125057/uipicker-and-uiactionsheet-no-longer-working-ios7

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!