2011-08-02 16 views
1

私は異なるデータのためにUITableViewを持っています。ユーザーが1行を選択すると、UIPickerViewがポップアップしてユーザーがいくつかの値を選択できるようになります。そして私はnumberOfComponentsInPickerView DataSourceメソッドを実装して、UITableViewの異なる行のコンポーネント数を返しました。実際にはすべて1です。UIPickerViewのコンポーネント数を変更する方法は?

しかし今、私はインターネットからさらにデータをダウンロードし、UITableViewの行を追加します。私は[pickerView reloadAllComponents]をダウンロードの終了後に呼び出しました。 numberOfComponentsInPickerViewが呼び出され、UITableViewの新しい行のピッカービューに多くのコンポーネントを含めることができます。しかし、それは動作していません。

どうすればいいですか?ありがとう。

答えて

0

私の問題の解決策が見つかりました。 UIPickerViewをリロードしてコンポーネントの数を動的に変更しようとするのではなく、2つのUIPickerViewを使用します.1つはコンポーネントを持ち、もう1つは2つです。ユーザーがテーブルビューで異なる行のデータを選択すると、これらの2つの間を切り替えます。

これは、他の人に同様のニーズがある場合に役立ちます。

4

IOS 5デバイスで動作するXCode 4.2では、[pickerView reloadAllComponents]を使用してUIPickerViewのコンポーネント数を変更することができました。

これは当初の期待通りに機能します。 reloadAllComponentsを呼び出すと、numberOfComponentsInPickerViewメソッドが呼び出されました。

+0

しかし、うーん...別の問題に走った。 IOS 5のreloadAllComponentsは実際にnumberOfComponentsを再計算するよう強制しますが、widthForComponentを強制的に再計算するようには見えません! –

関連する問題