调整大小的UIView使用自动布局与修复底部的UIView

问题描述:

当键盘出现时我想用Autolayoutview1来调整,我也有view2屏幕像这条底线:之间调整大小的UIView使用自动布局与修复底部的UIView

enter image description here

layoutConstraintview1 & view2

enter image description here

我创建了th Ë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]; 
} 

view2height 35所以当键盘出现和消失有view1下一个可见的缝隙像这样

enter image description here

我故意给基地UIView一个水上颜色讲述差距。

调整view1的尺寸时,我该如何弥补这个空白?

+0

当你说_blc.constant = CGRectGetHeight(keyboardFrame)时会发生什么;? – beyowulf

+0

当键盘出现和消失时,同样的问题间隙仍然可见。 –

所以如果我已经把它做对了,你想要做的是用键盘调整View1的大小,并在其下面放置View2? 如果就是这样,你的看法是这样的:

-------------- 
View1 
View2 
-------------- 

你应该从View1.bottom> = View2.top 0常数的垂直空间的限制;和另一个垂直空间约束从View1.bottom到Superview.bottom =(无论接口生成器暗示你)。你想要IBOutlet的约束是最后一个。

当键盘出现/消失时,像之前那样更新它的常量。这应该做到这一点。

希望它有帮助!

+0

不工作,当键盘出现和消失时,相同的问题间隙仍然可见。 –

+0

你如何更新约束? – facumenzella

+0

正如你所说的最后一个在view1和superview底部布局指南之间。当在Xcode中设置它的常量是35.0,并且当keyboardWillAppear时,我将常量设置为与键盘高度相同。但同样的问题仍然可见。它在模拟器中可以很容易看到,动画效果很慢。 –