私はUIPickerView
複数のコンポーネントを持っています。一部の値はグレー表示されています。「February」を選択すると「30」から「28」に移動するpickerView:didSelectRow:inComponent
のと同じように、問題のピッカー コンポーネントを最も近い有効な値にシフトすることでこれを尊重します。UIDatePicker
次に、デリゲート メソッドを呼び出して、調整された値を通知します。
私の調整メソッドが my を呼び出すと、画面上UIPickerView
のselectRow:inComponent:animated:YES
値は正しいですが、からの値selectedRowInComponent:
は (グレー値の調整前から) 古いものになります。ただし、 を呼び出すselectRow:inComponent:animated:NO
と、返される値は正しいのですが、アニメーションがないのが不快です。
beginAnimations:
調整を/commitAnimations
ブロックでラップし、値を でキャッチしようとしましたUIView
が+animationDidStopSelector
、まだ古い値が取得されます。誰もこれに遭遇したことがありますか?
問題は簡単に複製できます。
[picker selectRow:newValue inComponent:i+offset animated:YES];
retValue = [picker selectedRowInComponent:i+offset];
それをアニメートするのが YES の場合、retValue は 0 です (古いと呼びます)。NO に変更すると、retValue は newValue と同じになります。