複数のコンポーネントを持つUIPickerView
があります。一部の値はグレー表示されています。pickerView:didSelectRow:inComponent
は、問題のピッカーコンポーネントを最も近い有効値にシフトすることによりこれを賞賛します。が「2月」を選択すると「30」から「28」に移動します。次に、デリゲートメソッドを呼び出して調整値を通知します。UIPickerView selectedRowInComponent:コード調整後に古いデータを返します
アジャスターメソッドが私の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];
アニメーションする場合は、retValueは0であることに注意してください。 NOに変更すると、retValueはnewValueと同じになります。