你可能会发现我的问题很愚蠢,但我是Objective C dev的新手,我还在学习基本的东西。我在我的应用程序中创建了一个表单,在视图底部有一个文本字段。但是当这个字段获得焦点时,键盘会显示出来并隐藏字段,因此无法查看我正在键入的内容。我在网上找到了解决方案,特别是使用UIScrollView解决问题。
我现在的问题是Scroll View本身。我移动了我的文本字段,用大小相同的UIScrollView替换它,然后我拖回我的字段,但这次是作为ScrollView的子视图。但是当运行应用程序时,文本字段会上升,这就是它在界面构建器中的位置与我在运行应用程序时看到的位置不同。
我需要您提供有关我需要应用于Scroll View及其内容的大小的帮助,以便在这种情况下使其有用。它应该具有文本字段的确切大小吗?它应该与整个视图的大小相同吗?
求助,
的Stephane
答案 0 :(得分:1)
UIScrollView有两个“大小”。一个是它自己的框架(即它占用了多少空间)。滚动视图的contentSize有多大(即我们可以向左/向右/向上/向下滚动多远)
一般的想法是这样的:
您的UIScrollView具有隐藏键盘时可用屏幕空间的大小(例如320 x 460左右),它占用的内容与其内容一样多(假设您的内容也需要320 x 460) ,滚动未启用。
一旦键盘显示,scrollView将不得不缩小(例如320 x 244),内容显然不会缩小,这样你就可以滚动了。
我可能会使用像
这样的东西moveTextViewForKeyboard:(NSNotification*)aNotification up: (BOOL) up
触发scrollView的frameSize更改并启用滚动。