私はあなたscrollView
のcontentOffset
財産の変化を観察することを検討します。scrollView
'sbounds
と' scontentOffset
の知識があれば、表示されているかどうかを判断できます。次のようなものが機能するはずです。textField
frame
textField
CGRect scrollViewVisibleBounds = CGRectOffset(scrollView.bounds, scrollView.contentsOffset.x, scrollView.contentsOffset.y);
BOOL textFieldIsVisible = CGRectIntersectsRect(textField.frame, scrollViewVisibleBounds);
あなたが今抱えている問題は、への変化をどのように観察するかcontentOffset
です。たとえば、減速アニメーション中に1秒あたり複数の更新を受信するため、(KVOを介して)常に監視することは実際には現実的ではありません。viewController
として設定し、やのようなコールバックを介しての可視性をUIScrollViewDelegate
更新することを検討します。textField
scrollViewDidEndDragging:
scrollViewDidEndDecelerating