我想通過UITextFields在鍵盤啓動時導航。我有一個帶有內置文本框的UIScrollView的xib設置。當UITextField被設置爲第一響應者時,我將contentOffset.y更改。前兩個文本框會正常響應,但在此之後,滾動視圖將射過選定的文本框,並且在獲得的列表的下方越來越差。我已經設置了NSLog語句和斷點,這些斷點告訴我,當我第一次選擇文本字段時,使用了正確的y值,但隨後幾次滾動視圖的scrollViewDidScroll方法直接調用,運行經過文本字段。UIScrollView自動滾動後,我設置contentOffset
-(void)textFieldDidBeginEditing:(UITextField *)textField{
textField.inputAccessoryView = accessoryBar;
int offset = 30;
[scrollView setContentOffset:CGPointMake(0, textField.frame.origin.y -offset) ];
}
-(void)textFieldDidEndEditing:(UITextField *)textField{
[scrollView setContentOffset:CGPointMake(0, 0)];
}
-(BOOL) textFieldShouldReturn:(UITextField*) textField {
[textField resignFirstResponder];
return YES;
}
我上的Xcode 4.1獅子運行iOS 4.3
你在做什麼scrollViewDidScroll會改變這個?或者你是否在其他地方設置了內容偏移? – MishieMoo
我沒有使用scrollViewDidScroll來打印使用NSLog的偏移調用。「NSLog(@」scrollview:offsetY:%f height:%f「,scrollView.contentOffset.y,scrollView.contentSize.height);」 – user912649
你的抵消總是30?像Mundi說的,絕對會登錄textField框架。 – MishieMoo