UIPicker 和 UIActionsheet 不再工作 iOS7
Posted
技术标签:
【中文标题】UIPicker 和 UIActionsheet 不再工作 iOS7【英文标题】:UIPicker and UIActionsheet no longer working iOS7 【发布时间】:2013-10-01 20:14:19 【问题描述】:嗨,我的 UI 选择器不再适用于 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];
这是我迄今为止尝试过的。以前在操作表中显示选择器从来没有问题,但现在它是空白的。我想知道有没有其他人遇到过这个问题,或者你能看到任何错误吗?我打印了与选择器有关的所有内容。
【问题讨论】:
【参考方案1】:有人告诉我,将选择器放入操作表是不标准的。我在 iOS 6 中执行此操作从未遇到任何问题,但在 iOS 7 中,我遇到了错误。我切换到 UIView 而不是我的选择器的操作表,它工作正常。我希望这会有所帮助。
【讨论】:
非常感谢。我希望不会是这种情况,但它应该很容易解决。我希望保持不变。再次感谢。 我也希望如此,但将它们放在 UIViews 而不是 ActionSheets 中也不错。祝你好运!【参考方案2】:根据文档,不建议为操作表添加子视图。
"子类注释 UIActionSheet 不是为子类而设计的,也不应该将视图添加到它的层次结构中。如果您需要呈现比 UIActionSheet API 提供的自定义更多的表单,您可以创建自己的表单并使用 presentViewController:animated:completion: 以模态方式呈现它。"
Apple 正在加强他们对 Action Sheets 的使用......并且他们提高了在 iOS 7 中使用此功能的赌注,这意味着您必须围绕它编写代码。
【讨论】:
【参考方案3】:看看我做的这个项目。这实际上与在操作表中添加选择器 https://github.com/DiscoverPioneer/PickerSlider
【讨论】:
以上是关于UIPicker 和 UIActionsheet 不再工作 iOS7的主要内容,如果未能解决你的问题,请参考以下文章