当键盘出现时,我想使用Autolayout调整view1的大小,我在屏幕底部也有view2,如下所示:

view1和view2之间的layoutConstraint是

我创建了IBOutlet并执行了以下操作
-(void)keyboardWillShow:(NSNotification*)n {
NSDictionary *info = n.userInfo;
NSValue *value = info[UIKeyboardFrameEndUserInfoKey];
CGRect rawFrame = [value CGRectValue];
CGRect keyboardFrame = [self.view convertRect:rawFrame fromView:nil];
_blc.constant = CGRectGetHeight(keyboardFrame)-35;
[self.view layoutIfNeeded];
}
-(void)keyboardWillHide:(NSNotification*)n {
_blc.constant = 0.0;
[self.view layoutIfNeeded];
}view2是height 35的,所以当键盘出现和消失时,view1下会有一个可见的间隙,如下所示

我特意给了基座UIView一种水蓝色来告诉你这个缝隙。
如何在调整view1大小时弥补这一差距
发布于 2016-04-25 03:11:41
所以如果我没弄错的话,你想要做的是用键盘调整你的View1的大小,而把View2留在它的下面?如果就是这样,你的视图是这样的:
--------------
View1
View2
--------------您应该有一个从View1.bottom到View2.top的垂直空间约束,常量为0;另一个垂直空间约束是从View1.bottom到Superview.bottom =(无论接口构建器建议您使用什么)。您想要IBOutlet的约束是最后一个。
当键盘出现/消失时,您可以像以前一样更新它的常量。这应该就行了。
希望它能有所帮助!!
https://stackoverflow.com/questions/36824550
复制相似问题