【问题标题】:UIScrollView height adjusts from IBUIScrollView 高度从 IB 调整
【发布时间】:2011-09-23 05:31:05
【问题描述】:

我在 Interface Builder 中创建了一个 UIScrollView,它占据了 iPad 的整个屏幕(0、0、1024、768)

但是 - 在运行应用程序时,scrollView 仅在 (0, 0, 1024, 440) 处显示在屏幕上。 440 是一个估计值,但它并没有一直向下延伸以填满屏幕。

我在其他应用中也做过同样的事情,但没有遇到过这个问题。 我在项目上运行了“清理”,我尝试删除滚动视图并重新创建它,但仍然出现同样的问题。

我什至尝试以编程方式强化 Interface Builder 中的内容,但它仍然以相同的方式显示。

CGRect scrollFrame = CGRectMake(0, 0, 1024, 768);
[scrollView setFrame:scrollFrame];

如果您知道为什么会发生这种情况,我们将非常感谢您的帮助。

* 更新 * 经过更多研究,视图控制器有问题。 底部未显示 scrollView 的区域完全无法访问。如果我将一个按钮放在屏幕底部,我将无法单击该按钮。如果它在屏幕的上半部分,我可以点击它就好了。

此外,滚动视图实际上并不是从 0、0 开始的。它的开始位置缺少内容的顶部。所以看起来 scrollView 的高度确实是 768,但从 -320 开始,因此它的顶部不在屏幕顶部,而它的底部在屏幕底部之前结束。

【问题讨论】:

  • 你能解释一下你的视图层次吗?
  • 检查正确,您在代码中的某些地方犯了错误。
  • 视图控制器是标签视图控制器还是导航控制器?
  • 这是一个基于视图的应用程序,我可以在其中创建自己的视图控制器
  • 我在我的一个应用程序中遇到了类似的问题。我发现我对 View 控制器提供的默认视图做错了,我将该视图与 IBOutlet 之一绑定,并且无法访问您所面对的视图的某些部分。仅供参考。重命名现有的并且可能正在重新创建具有相同名称的 UIViewController 将解决您的问题。

标签: iphone ipad uiscrollview height scrollview


【解决方案1】:

问题似乎是应用程序认为它处于纵向模式,即使我的 .xib 处于横向模式。

在 mainProjectViewController 的 viewDidLoad 中用这个小技巧修复了它:

CGRect landFrame = self.view.frame;
landFrame.size.width = self.view.frame.size.height;
landFrame.size.height = self.view.frame.size.width;
self.view.frame = landFrame;

【讨论】:

    【解决方案2】:

    实际上,以横向模式查看它只是为了方便您查看旋转设备时会发生什么。以横向模式启动可能会出现问题。 See this question and its answers for some excellent info.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-13
      • 2015-07-09
      • 1970-01-01
      • 1970-01-01
      • 2014-02-16
      • 1970-01-01
      相关资源
      最近更新 更多