iMessage Extensionには非常に基本的なビューコントローラがあります。 (もちろん、ビューの拡大)。私はあなたがコンパクトビューでキーボード入力をすることができないことを知っています...iMessage Extension:子ビューコントローラのUITextViewは、スクロール動作に複数の問題があります。
UITextViewは、その上と下にある要素に制約されます。それは設定された高さと幅を持っています。制約はすべて順番になり、壊れません。
インターフェイスビルダーのtextviewのすべてのオプションは、DEFAULTSのままです。
以下の問題がUITextViewで発生:
I編集を開始すると、カーソルはかろうじて見えます。 (フィールドの底部には、垂直方向に半分にカットされています)。
最初の文字を入力すると、テキストビューの垂直中央にカーソルが移動します。
改行してから文字を入力すると、カーソルが再び下に戻ります。
その後、次の文字を入力すると、カーソルが再び垂直センターに移動します。他のすべてのキャラクターはテキストビュー全体をもう一度下にスクロールします。だから、あなたはこの変なバウンスをあらゆるキーストロークで上下に振る舞わせる。
スクロールバーの右側のビジュアルヒントは、スクロールするときにテキストビューの適切な高さを反映しません。 (スクロールバーが半分しか道をダウン - テキストビューの高さ。)
私はUITextViewはデフォルトでこのように動作することを期待:
- カーソルのTOPに行くべき
テキスト表示、起動時および編集時。
改行後にキーを入力するときに、テキストビューがジャンプしてはなりません。
垂直スクロールバーのインジケータには、テキストフィールドの全範囲が表示され、その半分ではありません。
明らかに、テキストビュー内の内部スクロールビューには、物のサイズがわかるという問題があります。
これはiMessage固有の問題であるか、誰かがこの問題をiMessage以外にも抱えているかどうか、どのように修正するかは誰にも分かりますか?
マイIBの制約(2番目のビューダウンは、テキストビューである):問題の
ビデオデモ: https://youtu.be/1bkvHnkXLWM
UPDATE:私は内部の私のビューコントローラを埋め込むために子ビューコントローラを使用していますルートコントローラ。私は空のHello Worldアプリケーションを試しましたが、UITextViewはデフォルトで正常に動作します。したがって、問題は、私が子ビューコントローラを埋め込んでいる方法に関連しています。
これは私が私の子ビューコントローラを埋め込むために使用しているコードです:
- (void)showViewController:(UIViewController*)vcToShow isPop:(BOOL)isPop
{
NSLog(@"Presenting Controller: %@", vcToShow);
[self.activeVC willMoveToParentViewController:nil];
[self addChildViewController:vcToShow];
vcToShow.view.translatesAutoresizingMaskIntoConstraints = NO;
vcToShow.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self.rootView addControls:@[vcToShow.view]
align:VerticalAlignStretchToFullHeight];
UIViewController* currentVC = self.activeVC;
self.activeVC = vcToShow;
vcToShow.view.alpha = 0.0f;
[self transitionFromViewController:currentVC
toViewController:vcToShow
duration:0.3
options:UIViewAnimationOptionTransitionNone
animations:^{
vcToShow.view.alpha = 1.0f;
}
completion:^(BOOL finished) {
[currentVC removeFromParentViewController];
[vcToShow didMoveToParentViewController:self];
[self updateScreenState];
if (isPop) {
[self removeReferenceToController:currentVC];
}
}];
}
を、それがラインかもしれません: ' vcToShow.view.translatesAutoresizingMaskIntoConstraints = NO;'?後で自動サイズ変更マスクを使用していますが、それは 'YES'に設定されていませんか? –
こんにちは。 translatesAutoresizingMaskIntoConstraintsをYESに変更すると、UITextViewに何の影響も与えませんでした。ありがとう。 – Alex