У меня есть представление, которое я хочу переместить его положение, когда отображается клавиатура, я использую UIKeyboardWillShowNotification делегат, чтобы обновить позицию и отлично работать на устройстве IOS 7, но когда я пытаюсь запустите его в устройстве IOS 8, тогда просмотр не будет изменен, кадр обновлен, так как я вижу его в журнале.IOS 8 set view frame not working
Ниже мой код
-(void) keyboardWillShow:(NSNotification*) notification{
@autoreleasepool {
CGRect frame = _loginFrame.frame;
frame.origin.y-=200;
DLog(@"login frame %@ ",NSStringFromCGRect(frame));
[UIView animateWithDuration:0.25 animations:^{
[_loginFrame setFrame:frame];
}];
}
}
Но, когда я пытаюсь анимации в dispatch_after блокировать его анимировать в новое положение
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[UIView animateWithDuration:0.25 animations:^{
[_loginFrame setFrame:frame];
}];
});
любую идею, почему кадр не оживление на новую позицию без отправки_отправки?
Спасибо!
Примечание: это выглядит как setFrame: метод не работает, не знаю почему, я создал основную Ios 8 приложение, чтобы проверить это
2014-09-11 18: 59: 54,836 KeyboardCheck [31215: 1451974] клавиатура показать 2014-09-11 18: 59: 54.837 KeyboardCheck [31215: 1451974] старый кадр {{60, 269}, {200, 30}} 2014-09-11 18: 59: 54.837 Проверка клавиатуры [31215: 1451974] рамка для обновления {{60, 169}, {200, 30}} 2014-09-11 18: 59: 55.33 9 KeyboardCheck [31215: 1451974] завершение блок-рамка {{60, 269}, {200, 30}} 2014-09-11 18: 59: 55.822 KeyboardCheck [31215: 1451974] клавиатура скрыть 2014-09-11 18: 59: 55,822 KeyboardCheck [31215: 1451974] старый кадр {{60, 269}, {200, 30}} 2014-09-11 18: 59: 56,324 KeyboardCheck [31215: 1451974] завершение блока frame {{60, 269}, {200, 30}}
Вы используете автоматическую раскладку? – Fogmeister
Если 'dispatch_after' работает, большинство из вас вызвано использованием автоматического макета. Правильный способ сделать это - это обновление ваших ограничений вместо установки фрейма. –
Да Я использую автозапуск, но у меня не было этой проблемы в IOS 7, ограничение установлено для левого, правого, нижнего интервала –