Мое табличное представление автоматически изменяет размер при появлении клавиатуры

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

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

Мой код..

-(void)KeyboardWillShow:(NSNotification *)keyboardInfo
{
    @try {
        NSDictionary *userInfo = keyboardInfo.userInfo;
        // Get keyboard size.
        NSValue *endFrameValue = userInfo[UIKeyboardFrameEndUserInfoKey];
        CGRect keyboardEndFrame = [self.view convertRect:endFrameValue.CGRectValue fromView:nil];

        // Get keyboard animation.

        NSNumber *durationValue = userInfo[UIKeyboardAnimationDurationUserInfoKey];
        NSTimeInterval animationDuration = durationValue.doubleValue;

        NSNumber *curveValue = userInfo[UIKeyboardAnimationCurveUserInfoKey];
        UIViewAnimationCurve animationCurve = curveValue.intValue;
[UIView animateWithDuration:animationDuration delay:0.0 options:(animationCurve<<16) animations:^{

    [self.messageView setFrame:CGRectMake(self.messageView.frame.origin.x, self.view.frame.size.height-keyboardEndFrame.size.height-self.messageView.frame.size.height, self.messageView.frame.size.width, self.messageView.frame.size.height)];

   [self.tableView setFrame:CGRectMake(self.tableView.frame.origin.x, self.tableView.frame.origin.y, self.tableView.frame.size.width, self.view.frame.size.height-keyboardEndFrame.size.height-self.messageView.frame.size.height-self.tableView.frame.origin.y)];
} completion:nil];
    }

    @catch (NSException *exception) {

   NSLog(@"Error in func:%s, line:%d with reason:%@",__func__,__LINE__,exception.reason);
    }

}

мой вывод ниже изображения, и я хочу другое изображение[![][1]]2


person Saurabh Jain    schedule 10.05.2016    source источник
comment
Вы меняете рамку таблицы, так в чем проблема?   -  person Ahmad Ishfaq    schedule 10.05.2016
comment
рамка табличного представления не меняется...   -  person Saurabh Jain    schedule 10.05.2016
comment
Мой вид таблицы автоматически появляется на предыдущем кадре   -  person Saurabh Jain    schedule 10.05.2016
comment
Вы указали ограничение для просмотра таблицы, фрейм не изменится, поэтому вам нужно изменить нижнее ограничение просмотра таблицы.   -  person Ahmad Ishfaq    schedule 10.05.2016
comment
так что я могу сделать, тогда я решу свою проблему   -  person Saurabh Jain    schedule 10.05.2016
comment
@SaurabhJain, если вы используете автомакет, эта ссылка может быть вам полезна и uiview с keyboardwillshow"> stackoverflow.com/questions/31356293/   -  person EI Captain v2.0    schedule 10.05.2016


Ответы (2)


Возьмите выход из нижнего ограничения таблицы и программно измените его следующим образом.

tablebottomConstraint.constant =  keyboardEndFrame.size.height+self.messageView.frame.size.height
person Ahmad Ishfaq    schedule 10.05.2016

Вы холодно используете вставку таблицы, модифицируя нижнюю вставку содержимого tableView :

self.tableView.contentInset = UIEdgeInsetsMake(0, 0, keyboardEndFrame.size.height + self.messageView.frame.size.height, 0);
person Alberto Scampini    schedule 10.05.2016