2012-09-05 51 views
0

我已經在scrollview中放置了動態創建的文本字段。我需要爲scrollview設置contentOffset。在textfield shouldbegin編輯我給了scrollview。它工作正常,如果我遍歷完成按鈕。但在如果我點擊任何文本框的文本字段上升和我無法看到文本字段之間。它顯示下一個字段的偏移量,但光標位於正確的文本字段中。我的代碼是如何在動態創建的texfield中爲scrollview設置內容偏移量?

-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField 

{

if(enteredHealthyHeart) 
{ 
    for(int i=0;i<[healthyHeart_TxtFldAry count];i++) 
    { 
     if(textField == [healthyHeart_TxtFldAry objectAtIndex:i]) 
     { 
      getHHTag=textField.tag; 
      NSLog(@"getHHTag %i",getHHTag); 
      UITextField *tempTxtFld=[healthyHeart_TxtFldAry objectAtIndex:getHHTag]; 

      if(i<([healthyHeart_TxtFldAry count]-1)) 
      { 
       int j =tempTxtFld.frame.origin.y; 

       healthyHeartScrollView.contentOffset=CGPointMake(0 , j); 

       NSLog(@"j>>>>>%i",j); 
      } 
      if(i==([healthyHeart_TxtFldAry count]-1)) 
      { 
       healthyHeartScrollView.contentOffset=CGPointMake(0 ,tempTxtFld.frame.origin.y); 

      } 

      [tempTxtFld resignFirstResponder]; 

      return YES; 

     } 
    } 

} 

}

請幫我解決這個問題。

回答

1

首先爲每個UITextField添加標籤;

-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField 
{ 
    //Take reference of all UITextField u added let say u have 3; 
    UITextField *txt = (UItextField *)[self.view viewWithTag:99]; 
    UITextField *txt1 = (UItextField *)[self.view viewWithTag:199]; 
    UITextField *txt2 = (UItextField *)[self.view viewWithTag:299]; 

    if(textField == txt) 
    { 
     [txt1 resignFirstResponder]; 
     [txt2 resignFirstResponder]; 
     //required scroll view offset here 
    } 
    if(textField == txt1) 
    { 
     [txt resignFirstResponder]; 
     [txt2 resignFirstResponder]; 
     //required scroll view offset here 
    } 
    if(textField == txt2) 
    { 
     [txt resignFirstResponder]; 
     [txt1 resignFirstResponder]; 
     //required scroll view offset here 
    } 
    return YES; 
} 
+0

我在數組中添加了textfields。由於這些文本字段是動態的。的UITextField * tempTxtFld = [healthyHeart_TxtFldAry objectAtIndex:getHHTag];如何將在陣列 –

+0

與標記添加視圖對於這些文本框在添加的UITextField dyanamically還添加的時間[yourTextView setTag:99]; –

0

scrollview.contentOffset是內容視圖偏離orgin滾動視圖的點。在你的代碼

healthyHeartScrollView.contentOffset=CGPointMake(0 ,tempTxtFld.frame.origin.y); 

tempTxtFld超出healthyHeartScrollView興田內容畫面。這使得tempTxtFld.frame.orgin.y相對於healthyHeartScrollView的內容視圖而言是負面的。 所以你看不到它。

ps。我真的不知道你想做什麼。__

+0

如果滾動視圖,並且如果我點擊任何文本框,我都看不到文本框。 tat textfield y的位置是125,但它取的偏移量是325.但我已經給出了偏移的y位置tempTxtFld.frame.origin.y。我希望textfield應該可見。 –

+0

是scrollview的textfield子視圖嗎?如果是的話,你可以試試這個:textfield.frame.origin.y = -scrollview.contentOffset.y; –

相關問題