2012-09-05 39 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; –

相关问题