我有一个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); 我的问题是当我必须切换视图时,我需要隐藏这个键盘。为此,我在我的UITextField上调用了UITextField。
UITextField中输入任何文本,这是很好的。UIScrollView返回到它原来的大小,但是它现在有一个偏移量,它被滚动* -1。所以如果偏移量是50,现在是-50。这意味着我的视图顶部是UIScrollView下方的50像素。如果我手动更新UIScrollView的偏移量,它不会做任何事情。要真正解决这个问题,我必须单击一个新的UITextField,它将UIScrollView中的所有视图修复到它应该是什么位置。
任何关于如何解决这个问题的帮助都非常感谢!我正在更新从5.0到5.1,希望这是一个错误,希望是修复,但我的希望很低。
发布于 2012-01-24 08:41:30
这不是解决问题的方法,而是归档功能的另一种方式:与其调整大小,不如直接调整位置(因为您使用的是UIScrollView)。一个例子可以找到这里。在这个示例中,您将覆盖KeyboardGetActiveView并返回应该是可见的视图。
https://stackoverflow.com/questions/8598906
复制相似问题