我有一个UIActionSheet,其中包含pickerUIToolbar。 UIToolBar上有一个完成按钮。但是,当我旋转Picker组件并且在它停止旋转之前,如果我点击Done按钮,则我的UITextfield中没有任何值。如果在选择器停止旋转动画后点击Done按钮,那么我将获取所选组件的值

在停止Animation ..之前有什么方法可以获取物品的价值?

SOLVE

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{
     UILabel *lbl = (UILabel *)view;

           // Reuse the label if possible...
           if ((lbl == nil) || ([lbl class] != [UILabel class])) {
               CGRect frame = CGRectMake(0.0, 10.0, 250, 50);
               lbl = [[[UILabel alloc] initWithFrame:frame] autorelease];
           }
    if (component == 0) {

        lbl.textColor = [UIColor blackColor];
        lbl.textAlignment=UITextAlignmentLeft;
        lbl.backgroundColor = [UIColor clearColor];



        lbl.text = [arrCountry objectAtIndex:row];
        lbl.font=[UIFont boldSystemFontOfSize:14];
         NSInteger clm1 = [pickerView2 selectedRowInComponent:component];


        txtCountry.text = [arrCountry objectAtIndex:clm1];
        countryCode=[arrCountryCode objectAtIndex:clm1];
    }

    return lbl;
}

并且
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{

  txtCountry.text = [arrCountry objectAtIndex:row];
  countryCode=[arrCountryCode objectAtIndex:row];
}

最佳答案

我认为你不能交配。当微调器停止时,UIPicker仅调用didselectrow,否则它将停留在先前选择的行上。您的情况下的第一个。

您可以使用uipicker最接近您的功能的是此委托方法:

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view

您必须查看屏幕上的视图及其与中心的偏移量。除此之外,您还可以实现自己的滚动视图并具有uipicker叠加层,但这需要进行大量工作。

要么!您可以告诉您的用户以正确的方式使用uipicker。

阻止用户按保存的另一种方法是检测uipicker是否在旋转。我找到this to help您。

08-05 23:28