如何使我 UITextView 减去下 iOS 7 键盘屏幕的高度
推荐于2016-01-05 · 知道合伙人数码行家
知道合伙人数码行家
向TA提问 私信TA
"正确"的方式来做这个 pre iOS7 一直是以调整 UITextView (UIScrollView 子类) 的 contentInset 属性键盘时显示或隐藏。我没有亲自调查,但这似乎不好在 iOS7 工作,因为下内边距是要么不荣幸或有一些问题仍会低于键盘的光标。看到这一问题供参考。
你的情况在您正在使用自动布局,和你想要的就是"全屏幕"的文本视图可以调整单个约束时键盘显示或隐藏。这将调整您的文本视图的高度:
@implementation TSViewController
{
IBOutlet NSLayoutConstraint* _textViewSpaceToBottomConstraint;
}
- (void) dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver: self];
}
- (void)viewDidLoad
{
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
}
- (void) keyboardWillShow: (NSNotification*) n
{
NSValue* bv = n.userInfo[UIKeyboardFrameEndUserInfoKey];
CGRect br = [bv CGRectValue];
_textViewSpaceToBottomConstraint.constant = br.size.height;
}
- (void) keyboardWillHide: (NSNotification*) n
{
_textViewSpaceToBottomConstraint.constant = 0;
}
@end
在您演示图板,您 UITextView 放您的视图-控制器视图并添加 4 约束要粘附其边缘的边缘-视图-控制器视图。连接到 IBOutlet _textViewSpaceToBottomConstraint 视图控制器中的底部空间的限制。
你很可能可以玩这个有点和调整大小动画块内部借款的动画时间和曲线从键盘通知。
我会感兴趣的这个版本设置 contentInset,并且有它正常工作......