2011-12-07 72 views
0

我的表格中使用UITextField作爲子視圖。我也可以編輯它,但僅限於表格中的上部單元格,我還會看到,我編輯的內容,因爲鍵盤隱藏了較低的單元格。滾動表格

現在我必須做什麼,滾動我想編輯的單元移動到頂部?

我試圖

selectRowAtIndexPath:indexPathOfCurrrentCell animated:NO scrollPostion:UITableViewSchrollPositionTop 

scrollToRowAtIndexPath:idexPathOfCurrentCell atScrollPosition:UITableViewSchrollPositionTop animated:NO 

但沒有它的工作原理。我必須使用其他命令還是添加其他內容?我必須改變什麼?

謝謝

回答

2

如果您不能手動滾動的tableView到的地方在那裏細胞是可見的;代碼也不會。

解決的辦法是將tableView的框架設置爲具有一個尊重鍵盤170點高度的高度。

你可以嘗試這樣的事:

tableView.frame = CGRectMake(tableView.frame.origin.x, tableView.frame.origin.y, tableView.frame.size.width, tableView.frame.size.height-170); 

這樣做是你的方法時,文本框成爲第一個響應者都會調用。

0

的UITextField

0

使用委託方法,即使我遇到了這個問題,滾動和我使用下面的邏輯來擺脫這一點。 這個如果有任何問題,恢復到我工作正常

-(void)textFieldDidBeginEditing:(UITextField *)textField 
{ 
    if (textField==textFieldOfYourInterest) 
    { 
    CGRect frame = self.view.frame; 
     if ([textField isFirstResponder] && self.view.frame.origin.y >= 0) 
     { 
     frame.origin.y -= 70; 
     } 
     else if (![textField isFirstResponder] && self.view.frame.origin.y < 0) 
     { 
     frame.origin.y += 70; 
     } 

     [self.view setFrame:frame]; 
    } 

} 

- (BOOL)textFieldShouldReturn:(UITextField *)textField 
{ 

    CGRect frame = self.view.frame; 

    if (![topTextFieldName isFirstResponder] && self.view.frame.origin.y < 0) 
    { 
    frame.origin.y += 70; 
    } 

    [self.view setFrame:frame]; 

    NSLog(@"text field should return"); 
    [textField resignFirstResponder]; 

    return YES; 
} 

謝謝 Nagaraja Sathe