0

大きなコメント フィールドがありUITextViewます。キーボードが表示され、UITextField がビュー全体のほぼ半分であるため、ユーザーはフィールドをほとんど見ることができません。私がやりたいのは、キーボードが表示されたとき (つまり、UITextView編集中) にビューを上に移動して、完全に表示され、ユーザーフレンドリーになるようにすることです。

4

2 に答える 2

0

を使用できます。

UITextViewTextDidBeginEditing

ビュー内のアイテムを再配置します。そして使う

– bringSubviewToFront:

テキストビューを前面に持ってきます。

于 2012-05-27T20:30:49.370 に答える
0

複雑で役に立たないコードを調べた後、ここで簡単な解決策を見つけました。

https://stackoverflow.com/a/5221243/1139419

この回答は、ダン・レイのおかげで、この状況を非常に穏やかに処理します

に関する簡単なメモ:この関数を呼び出すことは、私にとって魅力的ではありませんでした

-(void)scrollToView:(UIView *)view {
    CGRect theFrame = view.frame;
    float y = theFrame.origin.y - 15;
    y -= (y/1.7);
    [self scrollToY:-y]; 
}

だから私はこの関数を編集しました:

-(void)scrollToView:(UIView *)view withCoefficient:(CGFloat)coeff
{
    CGRect theFrame = view.frame;
    float y = theFrame.origin.y;
    y -= (y/coeff);
    [self scrollToY:-y];
}

これに。このようにして、メイン ビューをスライドさせるためのどの係数が適切かを試すことができます。1.7 の代わりに 2 が魅力的でした。完全な解決策については、リンクにアクセスしてください。UINavigationControllerまた、存在する場合は、同じことを自分にも適用したい場合があることに注意してください。

-(void)textViewDidBeginEditing:(UITextView *)textView
{
    [self.view scrollToView:textView withCoefficient:2.0];
    [self.navigationController.view scrollToView:textView withCoefficient:2.0];
}
于 2012-05-27T21:57:43.383 に答える