当没有看到UIScrollView上的UITextField时,resignFirstResponder

时间:2013-02-17 14:59:51

标签: ios cocoa-touch uiscrollview

当我加载UITextField时,我有一个becomeFirstResponder我呼叫ViewController。在它上面,我有一个UIScrollView,当我将其滚出时,我想在resignFirstResponder上致电textField

UITextField的位置可能会发生变化,但行为应保持不变。关于如何实现这类事情的任何想法?感谢。

1 个答案:

答案 0 :(得分:1)

我会考虑观察scrollView的{​​{1}}财产的变化。了解contentOffset的{​​{1}}和scrollView以及bounds的{​​{1}},您可以了解contentOffset是否可见。以下内容应该有效:

textField

您现在遇到的问题是如何观察对frame的更改。不断观察(即通过KVO)是不可行的,因为在例如减速动画期间你将每秒接收多次更新。我希望将textField设置为UIScrollViewDelegate并通过CGRect scrollViewVisibleBounds = CGRectOffset(scrollView.bounds, scrollView.contentsOffset.x, scrollView.contentsOffset.y); BOOL textFieldIsVisible = CGRectIntersectsRect(textField.frame, scrollViewVisibleBounds); contentOffset等回调更新viewController的可见度。