2016-04-24 4 views
0

Когда появляется клавиатура, я хочу, чтобы изменить размер view1 с помощью Autolayout, я также view2 в нижней части экрана, как это:Resize UIView с помощью autolayout с фиксированной нижней UIView

enter image description here

layoutConstraint между view1 & view2 является

enter image description here

Я создал тыс е 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 как этот

enter image description here

Я намеренно давшая базе UIView в цвет морской волны в расскажите о пробеле.

Как я могу покрыть этот промежуток при изменении размера view1?

+0

Что происходит, когда вы говорите _blc.constant = CGRectGetHeight (keyboardFrame) ;? – beyowulf

+0

тот же самый недостаток проблемы сохраняется, когда клавиатура появляется и исчезает. –

ответ

0

Итак, если у меня все получится, то вы должны изменить размер View1 на клавиатуре и оставить View2 ниже? Если это так, и ваш взгляд что-то вроде этого:

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

Вы должны иметь вертикальное пространство ограничения от View1.bottom> = View2.top с 0 константой; и другое ограничение вертикального пространства от View1.bottom до Superview.bottom = (любой конструктор интерфейса предлагает вам). Ограничение, которое вы хотите использовать IBOutlet, является последним.

Когда клавиатура появляется/исчезает, вы обновляете ее, как и раньше. Это должно сделать это.

Надеюсь, это поможет!

+0

Нет, его не работает, тот же пробел проблемы все еще виден, когда клавиатура появляется и исчезает. –

+0

Как вы обновляете ограничение? – facumenzella

+0

, как вы сказали, последний, который находится между руководством по планированию вида view1 & superview. При установке в Xcode его константа равна 35,0, а при клавиатуреWillAppear устанавливается постоянная, такая же, как и высота клавиатуры. Но все тот же вопрос разрыв все еще виден. Его легко видно в симуляторе с медленной анимацией. –

Смежные вопросы