当我用多个组件制作一个长的选择器时,只有中心附近的组件才会对点击到选择的特性做出反应。
例如,如果您想在选定的行下选择下一行,您应该能够点击它,使其动画化到选定区域。这个特性在iOS 7中仍然存在,但是UIPicker中实际接受抽头的区域是一个很小的窗口,不大于200 no。
是否有任何方法来扩展这个可点击的区域以包括整个UIPickerView,所以每当您点击一行时,它就变成了所选内容?
编辑这是代码,非常标准.
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
NSLog(@"picked %i %i" , component , row);
}
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
return 4;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component {
return 15;
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
return @"";
}
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{
UILabel *pickersLabel;
pickersLabel =[[UILabel alloc] initWithFrame:CGRectMake(0.0, 0.0, view.frame.size.width , view.frame.size.height )];
pickersLabel.text = [NSString stringWithFormat:@"thing %i" , row ];
pickersLabel.backgroundColor = [UIColor clearColor];
pickersLabel.backgroundColor = [UIColor colorWithRed:1/255.0 green:1/255.0 blue:2/255.0 alpha:0.05];
pickersLabel.opaque = NO;
[view addSubview:pickersLabel];
return pickersLabel;
}发布于 2013-10-30 16:29:19
我在UIPickerViews上遇到了很大的问题,而不是iOS 7中的故事板。我不确定是否在故事板的幕后进行了一些优化,或者这是否是一个直截了当的错误,但值得一试--我现在使用的是一个从存储板上来的选择器视图,我可以点击非选定的行,然后它们向上滚动并被选中。
https://stackoverflow.com/questions/19216821
复制相似问题