【问题标题】:Selecting a row in a UIPickerView dynamically动态选择 UIPickerView 中的一行
【发布时间】:2010-09-10 03:38:45
【问题描述】:

我有一个使用 UIPickerView 和 3 个按钮的 iPhone 应用。

此选择器有一个组件,包含 100 行(0、1、2、...、98、99)。

我想实现代码,以便当我按下按钮时

  • button1:将使选取器选择第 21 行(值为 20)
  • button2:将使选择器选择第 41 行(值为 40)
  • button3:将使选择器选择第 60 行 (其值为 60)

我知道如何让选择器在第一次加载视图时选择一行 通过将以下代码放入 viewDidLoad() 方法:

- (void)viewDidLoad   
{  
    ........  
    [picker selectRow:50 inComponent:0 animated:YES];  
}  

但是当我点击按钮时,我无法让选择器选择所需的行。

【问题讨论】:

    标签: iphone objective-c uipickerview


    【解决方案1】:

    将按钮连接到操作方法,然后在您的操作方法中简单地调用相同的selectRow:inComponent:animated: 方法,即

    - (IBAction)button1Action {
        [picker selectRow:20 inComponent:0 animated:YES];
    }
    

    然后在 Interface Builder 中将按钮连接到该方法。

    【讨论】:

    • 是的,我做到了。我什至从选择器中调用了“reloadComponent”,但它仍然不起作用。我一定在这里遗漏了一些东西。这是我在应用程序中用于“button1”的代码。 - (IBAction) goToRowTwenty { [picker selectRow:20 inComponent:0 animated:YES]; [timerPickerView 重载组件:0]; }
    • 感谢您的提示。有些时候你只是看不到明显的东西。 :)
    【解决方案2】:

    还要确保使用“IBOutlet”定义选择器,如下所示。并将选择器的引用出口连接到此:

    @property (nonatomic, retain) IBOutlet UIPickerView *picker;
    

    【讨论】:

      【解决方案3】:

      您可以将保留在 viewDidLoad 中的相同代码用于在单击按钮时触发的事件上选择 pickerRow。

      -(void)button1clickevent{
      //FUNCTION MUST GET FIRE WHEN BUttON ! IS CLICKED
             [picker selectRow:50 inComponent:0 animated:YES];
      }
      

      快乐的编码...

      【讨论】:

      • 是的,我做到了。我什至从选择器中调用了“reloadComponent”,但它仍然不起作用。我一定在这里遗漏了一些东西。这是我在应用程序中用于“button1”的代码。 - (IBAction) goToRowTwenty { [picker selectRow:20 inComponent:0 animated:YES]; [timerPickerView 重载组件:0]; }
      • 这个 timepickerView 是什么...重新加载你的选择器 [picker reloadComponent:0] 而不是 [timepicker reloadComponent:0];也不需要重新加载选择器。请检查您的选择器是否真的与xib中的选择器绑定。
      【解决方案4】:

      好的,现在我重新创建项目并重新输入代码:

      - (IBAction) goToRowTwenty  
       {   
          [picker selectRow:20 inComponent:0 animated:YES];   
          [timerPickerView reloadComponent:0];  
       }  
      

      它有效,我真的不知道发生了什么,但谢谢你们回答我的问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-12
        相关资源
        最近更新 更多