У меня есть UIScrollView, который хранит несколько UIViews.Я использую UIKeyboardDidShowNotification
для изменения размера UIScrollView
, когда моя клавиатура всплывает так, что моя видимая область содержимого находится только над клавиатурой.Я делаю это с помощью:
contentArea.Frame = new System.Drawing.RectangleF(0, contentArea.Frame.Top, 1024, 768 - contentArea.Frame.Top - r.Height);
Теперь, когда клавиатура исчезает нормально и срабатывает UIKeyboardWillHideNotification
, я могу легко сбросить это с помощью следующего, и это прекрасно работает:
contentArea.Frame = new System.Drawing.RectangleF(0, contentArea.Frame.Top, 1024, 627);
MyВопрос в том, когда мне нужно переключать представления, мне нужно скрыть эту клавиатуру.Для этого я звоню ResignFirstResponder()
на мой UITextField
.
- Если я никогда не введу текст в
UITextField
, это прекрасно работает. - Если я вообще не прокручиваю свой взгляд, это прекрасно работает.
- Однако, если текст был введен и произошла прокрутка, мой
UIScrollView
вернется к своему первоначальному размеру, но теперь у него будет смещение от того, насколько далеко он был прокручен * -1.Так что, если смещение было 50, то сейчас -50.Это означает, что верхняя часть моего обзора на 50 пикселей ниже UIScrollView
.
Если я вручную обновлю смещение UIScrollView
, это ничего не сделает.Чтобы на самом деле это исправить, я должен щелкнуть внутри нового UITextField
, и он исправит все мои представления в этом UIScrollView
к тому, что и должно быть.
Любая помощь в том, как это исправить, очень ценится!Я обновляю с 5.0 до 5.1, надеясь, что это ошибка, которая, надеюсь, была исправлена, но мои надежды невелики.