Я пытаюсь изменить размер UITextView
, когда клавиатура открыта.UITextView изменить размер, когда клавиатура открыта.
для того, чтобы дать мой новый размер UITextView
(так, чтобы он не стал омрачены клавиатуры) Я делаю следующий расчет Теперь
firstResult = UITextView bottom coordinate - keyboard top coordinate
firstResult
должны иметь размер затененной UITextView frame
, тогда я делаю textView.frame.size.height -= firstResult
, который теперь должен иметь новый размер, который не будет затенен клавиатурой.
Проблема с кодом, как он выделяется, заключается в том, что всегда есть часть UIView, которая скрыта за клавиатурой.
Может ли кто-нибудь указать, что случилось с моими расчетами, чтобы новый размер всегда был прав? или любым другим способом, который я мог бы использовать для изменения размера UITextView соответствующим образом, потому что все примеры, которые я нахожу в Интернете, не работают каким-то образом.
код
- (void)keyboardWasShown:(NSNotification *)notification {
CGRect viewFrame = input.frame;
CGFloat textEndCord = CGRectGetMaxY(input.frame);
CGFloat kbStartCord = input.frame.size.height - ([[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue]).size.height;
CGFloat result = fabsf(input.frame.size.height - fabsf(textEndCord - kbStartCord));
viewFrame.size.height -= result;
NSLog(@"Original Height:%f, TextView End Cord: %f, KB Start Cord: %f, resutl: %f, the sum: %f",input.frame.size.height, textEndCord,kbStartCord,result,fabsf(textEndCord - kbStartCord));
input.frame = viewFrame;
}
На ваших NSLog результатами, показанными являются ожидаемым? – CoderPug
Nop, в моих уравнениях что-то не хватает, потому что я никогда не получаю нужный размер –