2014-02-15 88 views
-1

我有一個UITableView,每個UITableViewCell有一個UITextField。當選擇UITextField我動畫UITableView到屏幕上,然後我改變UITableView大小,使用戶可以看到UITableViewCellUITextField是英寸如何滾動UITableViewCell到特定位置

目前一切工作和UITableViewCell在最底層所示,當用戶敲回車鍵時出現問題我嘗試設置下一個UITableViewCellUITextField作爲第一響應者,然後將其滾動到視圖....但問題是這個下一個字段尚未加載,所以我無法訪問此。

我想知道是否有一種方法可以initally滾動第一個選定的UITableViewCell/UITextField 2 or 3 up from the bottom so when enter is hit there is no worry about the next的UITextField not being loaded.... currently I have tried writing an off set but it dosnt work if I select a UITextField`是在屏幕的下半部分......這是代碼的樣子。

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

CGRect rc = [textField bounds]; 
rc = [textField convertRect:rc toView:self.finishingTableView]; 
CGPoint pt = rc.origin; 
pt.x = 0; 
if(rc.origin.y > 200) 
    pt.y -= 150; 
else 
    pt.y -= rc.origin.y; 
    [self.finishingTableView setContentOffset:pt animated:YES]; 

任何幫助,將不勝感激。

+0

你能用[[UITableView -scrollToRowAtIndexPath:atScrollPosition:animated:]'完成你想要的嗎? –

回答

2

UITableView有一個方法:

- (void)scrollToRowAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UITableViewScrollPosition)scrollPosition animated:(BOOL)animated 

可以玩弄scrollPosition達到期望的結果。

+0

關於這種方法,只有當鍵盤顯示時纔可以調用它,因爲當鍵盤未顯示時,我的當前代碼沒有問題。 – HurkNburkS

+0

我與scrollToRowAtIndexPath唯一的問題是,它將選定的UITableViewCell移動到中間或頂部的第一次,這很好......但如果用戶選擇的東西不是最後一個單元格,它給了我不想要的結果... – HurkNburkS

+0

我有也只是使用UITableViewScrollPositionMiddle進行測試,如果我在UITableView的下半部分中選擇了一些東西,它會導致相同的問題,它不會滾動到中間位置,並且當您按下Enter鍵時,它將丟失UITextField Focus。 – HurkNburkS

相關問題