0

スクロールビューに動的に作成されたテキストフィールドを配置しました。スクロールビューに contentOffset を設定する必要があります。テキストフィールドで編集を開始する必要があります。スクロールビューを指定しました。[完了] ボタンをトラバースすると正常に動作します。しかし、その間にテキストフィールドをタップすると、そのテキストフィールドが上がり、テキストフィールドが表示されなくなります。次のフィールドのオフセットが表示されますが、カーソルは正しいテキストフィールドにあります。私のコードは

  -(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;

        }
    }

}

}

この問題を解決するために私を助けてください。

4

2 に答える 2

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;
}
于 2012-09-05T07:17:20.687 に答える
0

scrollview.contentOffsetコンテンツ ビューが元のスクロール ビューからオフセットされるポイントです。あなたのコードで

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

はのtempTxtFldコンテンツ ビューから外れていますhealthyHeartScrollView。これにより、tempTxtFld.frame.orgin.yの contentview に対して負の値になりhealthyHeartScrollViewます。だから、あなたはそれを見ることができません。

ps。あなたが何をしたいのか本当にわかりません.-_-

于 2012-09-05T07:27:20.533 に答える