我有一個UITextField
我打電話becomeFirstResponder
當我加載ViewController
。對此,我有一個UIScrollView
,我想在textField
上撥打resignFirstResponder
,當我有滾動出我認爲。resignFirstResponder當UITextField在UIScrollView上沒有看到
UITextField
的位置可能會改變,但行爲應該保持不變。關於如何實現這種事情的任何想法?謝謝。
我有一個UITextField
我打電話becomeFirstResponder
當我加載ViewController
。對此,我有一個UIScrollView
,我想在textField
上撥打resignFirstResponder
,當我有滾動出我認爲。resignFirstResponder當UITextField在UIScrollView上沒有看到
UITextField
的位置可能會改變,但行爲應該保持不變。關於如何實現這種事情的任何想法?謝謝。
我會看看你的scrollView
的contentOffset
屬性的變化。知道scrollView
的bounds
和contentOffset
和textField
的frame
您可以計算出textField
是否可見。類似以下內容應該工作:
CGRect scrollViewVisibleBounds = CGRectOffset(scrollView.bounds, scrollView.contentsOffset.x, scrollView.contentsOffset.y);
BOOL textFieldIsVisible = CGRectIntersectsRect(textField.frame, scrollViewVisibleBounds);
您現在的問題是如何觀察對contentOffset
的更改。經常觀察(即通過KVO)並不是真的可行,因爲在例如減速動畫期間,您會每秒收到多個更新。我會考慮將您的viewController
設置爲UIScrollViewDelegate
,並通過scrollViewDidEndDragging:
和scrollViewDidEndDecelerating
等回調更新您的textField
的可見性。
爲了記錄,[objective-c]標籤應該保留用於與Objective-C朗讀使用或語法相關的問題。這個問題更側重於使用Cocoa Touch庫。同樣,[iphone]標籤在這裏也不合適,因爲它將問題標示爲特定於iPhone,並排除iPad。純粹的pedrantry,我知道:D – sjwarner 2013-02-17 15:40:44