3

依存する2つのコンポーネントがありますpickerView。ユーザーがを使用する(そしてトリガーする)UIImageViewたびに変化するプレビューがあります。これは私が期待したとおりに機能します。pickerViewdidSelectRow:inComponent:

ただし、アプリの起動時pickerViewにをトリガーdidSelectRow:して、ユーザーにが表示された瞬間にプレビューが表示されるようにしますUIImageView。で、これviewDidLoadを試してみると:

[self pickerView:picker didSelectRow:row inComponent:component]; // row and component have 0 values. 

次に起こること-pickerView空白で表示されます!この行を削除すると、再び完全に機能します。私もこれを試しました:

[picker selectRow: row inComponent:component animated:NO];

それがトリガーされると思っていますが、それはトリガーdidSelectRow:されず、私UIImageViewは空白のままです。

didSelectRow:ユーザーの助けなしにメソッドを呼び出す方法に関するアドバイスはありますか?

更新:ちなみに、ピッカーは別のピッカーの中にありますUIView(メインのものではありません)。それが重要な場合。

4

2 に答える 2

12

didSelectRow:...ユーザーの操作によって行が選択された場合にのみ呼び出されます。プログラムで行を選択する場合はselectRow:...、画像ビューなどの他のコンポーネントを更新するための独自のロジックを追加する必要があります。

この原則は、たとえばなど、他の多くのデリゲート機能にも有効ですtableView:didSelectRowAtIndexPath:

于 2012-10-25T19:32:43.780 に答える
3

あなたのコメントに基づいて、これはあなたがその時探しているものです。 UIPickerViewのselectRow:inComponent:animated:はpickerView:didSelectRow:inComponent:を呼び出しますか?

メソッドを手動で呼び出す必要がありますdidSelectRow

于 2012-10-25T19:25:51.920 に答える