我一直在UITextView
以编程方式创建 s,在 iOS 7 中使用自动布局。像这样:
_textView = [UITextView new];
_textView.translatesAutoresizingMaskIntoConstraints = NO;
_textView.font = [UIFont systemFontOfSize:18.0];
_textView.delegate = self;
[self.view addSubview:_textView];
除了我创建的其他约束之外,我在文本视图的底部还有一个:
_textViewBottomConstraint =
[NSLayoutConstraint constraintWithItem:_textView
attribute:NSLayoutAttributeBottom
relatedBy:NSLayoutRelationEqual
toItem:self.bottomLayoutGuide
attribute:NSLayoutAttributeTop
multiplier:1.0
constant:0.0];
[self.view addConstraint:_textViewBottomConstraint];
这样我就可以在键盘显示时更改约束:
- (void)keyboardDidShow:(NSNotification*)sender
{
CGRect keyboardFrame =
[sender.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue];
CGRect convertedFrame =
[self.view convertRect:keyboardFrame fromView:self.view.window];
_textViewBottomConstraint.constant = -convertedFrame.size.height;
[_textView layoutIfNeeded];
}
这一切都很好......
问题
我刚刚切换到 Xcode 6 和 iOS 8(我知道晚了) -UITextView
现在里面的文本在顶部有一个插图。例如(文本视图背景为黄色):
是什么导致了插入?它与NSTextContainer
和相连textContainerInset
吗?
- 从 iOS 7 及更高版本开始使用
NSTextContainer
和正确textContainerInset
的使用方式?UITextView
- 在 iOS 8 中是否必须这样做?
如果是的话,我将不胜感激以编程方式创建 aUITextView
以及必要的NSTextContainer
and的一些指导NSLayoutManager
;然后设置textContainerInset
. (我将以编程方式使用自动布局)。
谢谢。