コンテンツを間違った位置に配置しているUITextViewがあります。テキストを入力するとすぐに、テキストは見えなくなり、その後すぐに正しい位置にジャンプします(ほぼ正しい位置、私が予想した位置よりやや低い位置)。NavigationBar半透明の変更UITextViewのテキストの位置
デバッグを表示するとき_UITextContainerViewの位置が間違っていることがわかります。
NavigationBarの外観をNOに設定すると、 はすべて正常に動作しますが、問題はありません。
私はMAINVIEWのバウンド私はテキスト入力する前に、それは "NavigationBar"if (self.navigationController.navigationBar.isTranslucent) {
[[self view] addConstraint:[NSLayoutConstraint constraintWithItem:_mainView
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeTop
multiplier:1.0
constant:64]];
} else {
[[self view] addConstraint:[NSLayoutConstraint constraintWithItem:_mainView
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeTop
multiplier:1.0
constant:0]];
}
下回っていない他のように設定する必要があり
UINavigationBar.appearance.translucent = YES;
を、 _UITextContainerViewが下に移動すると、 のカーソルが "_UITextContainerView"ビューの中央に表示されます。小さな さらに長方形の長方形が表示されます。
はちょうど私の境界は、フレームと一致しない 、私の問題に関連している可能性がいくつかの詳細情報を、見つけました。これを修正する方法がまだわかりません。 これは、4から-56 = 60の距離、NavigationBarの高さが であると考えられます。
再びいくつかの詳細情報:
私は、TextFieldにフォントサイズを設定し、フォントサイズ を減少させた後、私は異なる結果に気づく、画像に見えます。
半透明をオフに設定してテストしましたが、すべての(0,1,2,3文字)はフォントサイズを小さくして完璧です。
は、フォントの変更結果の画像を参照してください:
_textField = [UITextView new];
_textField.bounds = CGRectZero;
_textField.backgroundColor = [UIColor whiteColor];
_textField.layer.cornerRadius = 16;
_textField.layer.borderWidth = 0.5;
_textField.font = [UIFont systemFontOfSize:17.0]; //<< problematic???
なぜあなたはsuperviewと 'toitem:self.view'として' self.view'を使っていますか?しかし 'self.view'ではなく' UITextView'スーパービューがあるようにデザインします。たぶん、この問題は制約によって生じました。 'UITextView'のスクロール可能を削除します。 (ちょうど情報のために) – user3589771
mainviewはself.viewの中にあり、StoryBoardがあなたに与えるものです。私のUITextViewはスクロールしていません。 – Wayne