В моем приложении в один момент я хотел бы, чтобы переместить кнопку вверх, если клавиатура появляется, так что кнопка всех дней видна, и переместить его обратно, когда клавиатура уволит:Поведение тренажера отличается от поведения устройства?
- (void) keyboardDismiss :(NSNotification*)notification{
NSDictionary* keyboardInfo = [notification userInfo];
NSValue* keyboardFrameBegin = [keyboardInfo valueForKey:UIKeyboardFrameBeginUserInfoKey];
CGRect keyboardFrameBeginRect = [keyboardFrameBegin CGRectValue];
UIView animateWithDuration:0.4 animations:^{
footer.frame = CGRectMake(X(footer), Y(footer)+keyboardFrameBeginRect.size.height-10, WIDTH(footer), HEIGHT(footer));
}];
}
- (void) keyboardShow:(NSNotification*)notification{
NSDictionary* keyboardInfo = [notification userInfo];
NSValue* keyboardFrameBegin = [keyboardInfo valueForKey:UIKeyboardFrameBeginUserInfoKey];
CGRect keyboardFrameBeginRect = [keyboardFrameBegin CGRectValue];
[UIView animateWithDuration:0.4 animations:^{
footer.frame = CGRectMake(X(footer), Y(footer)-keyboardFrameBeginRect.size.height+10, WIDTH(footer), HEIGHT(footer));
}];
}
Поэтому я модифицируя y
Координата keyboardFrameBeginRect.size.height-10
всегда. Я бы ожидал, что код должен вести себя одинаково как на симуляторе, так и на самом устройстве. Он был протестирован на iPhone 4 и работал, как ожидалось. Он был протестирован в симуляторе на iPhone 5 и работает так, как ожидалось, теперь интересная часть: когда я разворачиваю код через testflight, после вызова keyboardDismiss:
footer
больше не виден (проверен на iPad2 и iPhone 5s, и проблема только с iPhone). То, что я сделал, это добавить оповещение прямо перед тем, как keyboardDismiss:
вернет, что будет печатать координату y
footer
, результаты 446
в симуляторе и 506
в версии устройства (iPhone 5s). Что может быть причиной разных результатов?
изменения:
footer
инициализации: CGRectMake((kWidth - kHSeparator - kButtonSize), (kHeight - kVSeparator- kButtonSize), kButtonSize, kButtonSize)
, где kWidth
и kHeight
являются ширина и высота экрана, другие просто константы.
Вы можете добавить код для расчета нижнего колонтитула? И это точно 446 и 506. Не 442 и 506. –
Что значит «рассчитать», я просто вывод 'footer.origin.y' –
Что такое нижний колонтитул? вид внизу, когда вы начинаете его, у него есть footer.frame = CGRectMake (0, self.view.bounds.size.heigh-70, .... Это только для информации о нижнем колонтитуле. –