繁体   English   中英

UIPickerView交互式区域,用于在iOS 7中点击切断

[英]UIPickerView interactive area for tapping cut off in iOS 7

当我制作带有多个组件的长拾取器时,只有中心附近的组件才会对点击选择功能产生反应。

例如,如果要在选定行下选择下一行,则应该可以点击它使其动画到选择区域中。 此功能在iOS 7上仍然存在,但是UIPicker中可以实际接受点击的区域是一个很小的窗口,不大于200px。

是否有任何方法可以扩展此可点击区域以包括整个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;
}

我在.xibs中而不是在iOS 7中的Storyboard中遇到了UIPickerViews的大量问题。我不确定Storyboard的幕后是否进行了一些优化,或者这是否是一个直接的bug,但这是值得的镜头-我现在使用的是从情节提要中获取的选择器视图,我可以点击未选择的行,然后它们向上滚动并被选中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM