0

アプリを開発しています。ボタン、UITextfields、Mapkit、および UITextviews の約 15 個のコントロールを含む画面があります。テキストビューは画面の下部にあります。そのため、クリックして値を入力すると、スクロール ビューが表示され、必要に応じてコントロールが上に移動します。現在、5 つのコントロール (カスタム ボタン) があり、画面上の特定の x、y 位置に配置されています。画面に。テキストビューに入ると、すべてのコントロールが上に移動しますが、特別な x、y 位置が与えられているため、これらは移動しません。私も彼らを動かしたいです。どうすればいいのですか?私はいくつかの計算を行うことを考えていました。すべてのコントロールが動くと、これらも特定の「デルタ」で動きます。または、これらの「固定ボタン」を選択して他のコントロールのように上に移動することをスクロールビューに伝える簡単な方法はありますか。

ここに画像の説明を入力

この写真は、私がやろうとしていることを示しています。したがって、画面に接続されている 4 つの UIbuttons があります。このように CGRect を作成して画面に固定します

CGRectMake(20, 72, 180, 43)
CGRectMake(200, 72, 180, 43)
CGRectMake(380, 72, 180, 43)

CGRectMake(90, 380, 180, 43)

太字の長方形は、それらの座標に固定して作成したものです。2 番目の Uitextview をクリックすると、デリゲートが起動され、すべてのコントロールが上に移動します。これには、3 つの四角形 (BOLD ONES ではない) と最初の uitextivew が含まれています。しかし、UIBUTTONS (BOLDED Rectangles) は画面に表示されたままになります。キーパッドを非表示にすると、アプリ画面は正常になります。太字の長方形を太字でない長方形と一緒に上に移動するにはどうすればよいですか。

    ITMToggleButtonView *aOnToggleButton = [[ITMToggleButtonView alloc] initWithFrame:CGRectMake(495, 21, 80, 43)
                                                                           andIndex:3
                                                                           andTitle:@"Add On?"
                                                                           andState:NO];
aOnToggleButton.delegate = self;

...他の 4 つのカスタム トグル ボタンを作成

[self.scrollView addSubview:stToggleButton];
[self.scrollView addSubview:rdToggleButton];
[self.scrollView addSubview:ecToggleButton];
[self.scrollView addSubview:aOnToggleButton];
[self.scrollView addSubview:sCToggleButton];

編集: Solution.I は、ここに表示されているように、カスタム作成したトグル ボタン (太字の四角形) を追加し、それらを私の scrollView に追加しました。そのため、キーボードが表示されると、スクロールビューが上に移動し、すべてのコントロール (太字と太字ではないもの) も移動します。簡単な修正でした。

4

1 に答える 1

0

これに対処する最も簡単な方法は、一緒にスクロールするすべてのコントロールがすべて同じサブビューのサブビューであることを確認することです (この場合、 のように聞こえますUIScrollView)。したがって、キーボードが表示されたときに移動する太字以外のコントロールが にある場合はUIScrollView、太字のものを同じサブビューに配置する必要があります。たとえば、UIScrollView他のコントロールと同じです。

UIScrollViewただし、いくつかのコントロールをに追加した(プログラムで追加している可能性があります) とそうでないもの (Interface Builder を介して追加した可能性があります) には何らかの理由があると思います。スクロールビューのサブビューであり、他のサブビューではない理由について、ロジックを説明する必要があります。いつものように、コードの意味のあるスニペットを共有すると役に立ちます。この種の問題を抽象的に診断することはほとんど不可能です。

要するに、問題はCGRect太字のコントロールを追加するために使用した座標ではなく、サブビューとして追加したビューにあるようです。さまざまな「動かない」コントロールの変化する座標をスクロールビューとアニメーション化することの同期を試みることもできますが、それは少しぎこちなく、同じサブビューですべてを取得することをお勧めします。

于 2012-12-03T03:12:54.827 に答える