Ios 在选择器视图中不向外滚动时无法拾取默认值

Ios 在选择器视图中不向外滚动时无法拾取默认值,ios,uipickerview,Ios,Uipickerview,我在我的应用程序中有picker视图,它可以正常工作,但如果我想先选择picker视图中的值,则会出现问题。如果不滚动picker视图,我无法进行拾取。首先,我向上或向下滚动,然后我可以选择这些值。不在选择时不滚动。 在picker视图中不向外滚动时无法获取值(当用户未与picker视图交互时,我希望获取在picker视图中默认选中的值) 如果要选择默认值,这是我的可编辑代码。找到行并使用UIPickerView的此方法 –选择行:不完整:动画: 您可以使用 selectRow:0 inComp

我在我的应用程序中有picker视图,它可以正常工作,但如果我想先选择picker视图中的值,则会出现问题。如果不滚动picker视图,我无法进行拾取。首先,我向上或向下滚动,然后我可以选择这些值。不在选择时不滚动。 在picker视图中不向外滚动时无法获取值(当用户未与picker视图交互时,我希望获取在picker视图中默认选中的值)


如果要选择默认值,这是我的可编辑代码。找到行并使用
UIPickerView
的此方法

–选择行:不完整:动画:

您可以使用

selectRow:0 inComponent:0 animated:NO
或者,可以使用调用选择器委托方法

pickerView:myPickerView didSelectRow:0 inComponent:0

通过向选择器视图中添加“点击”手势,可以让用户点击/单击选择器视图中的一行。下面是相同的代码

[self.pickerview selectRow:0 inComponent:0 animated:YES];
UITapGestureRecognizer *tapToSelect = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(pickerTapped:)];
tapToSelect.delegate = self;
[self.pickerview addGestureRecognizer:tapToSelect];  
然后添加以下方法:

-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
  return true;
}


-(void)pickerTapped:(UIGestureRecognizer *)gestureRecognizer
 {
    if ([self.pickerview selectedRowInComponent:0] == 0)
    {
      _Kilolbl.text = selectedRowValue;
    }
 }  
这就是如何将选择器视图中默认选中行的值填充到所需的UIControl。例如,如果默认选中行为10,则应使用10进行pickerTapped方法中的比较。

不要忘记将UIgestureRecognitizerDelegate添加到您的视图控制器。

您可以发布代码吗?谢谢。@harsh把你的一些代码放在这里。-(void)pickerView:(UIPickerView*)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{if([callCalculate IseQualtString:@“WEIGHTMEASURE]”){IdealWeightstr=[ArrayForIdealCalc objectAtIndex:row];_-KiloLbl.text=IdealWeightstr;[\u pickDataForIdealWeight setHidden:YES];[self.pickDataForIdealWeight重载所有组件];}@harshchauhan:您可以选择第一个值作为默认值。现在,当您滚动时,更改该值。如果该值未滚动,则可以使用默认值,即纠察队的第一个值。这可能会解决您的问题。@harshchauhan:我知道您的问题所在。pickerView:didSelectRow:Incomonent:在您滚动到e picker视图。因此,没有设置第一个值。解决此问题的方法就是我上面提到的方法。只需选择第一个值作为默认值,并在选择器滚动时更改它。这肯定会解决您的问题。您是否正确设置了所有委托方法。您还可以确保您的pickerTapped方法是否为g是否调用?我仍然无法尝试第一个值。没有外滚动:-当我点击时仍然无法尝试第一个值。:我正在向您发送完整的.m文件。如果您向我发送您的邮件id。我读到的所有内容都表明UIPickerView在iOS 8之后无法与UIGestureRecognitor一起工作。它对我不起作用。
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
  return true;
}


-(void)pickerTapped:(UIGestureRecognizer *)gestureRecognizer
 {
    if ([self.pickerview selectedRowInComponent:0] == 0)
    {
      _Kilolbl.text = selectedRowValue;
    }
 }