UIScrollView 可滚动内容大小不明确

2024-03-10

各位开发者, 我在 Interface Builder (Xcode 5 / iOS 7) 中使用 AutoLayout 时遇到问题。 这是非常基本和重要的,所以我认为每个人都应该知道它是如何正常工作的。如果这是 Xcode 中的一个错误,那么它是一个严重的错误!

因此,每当我有这样的视图层次结构时,我就会遇到麻烦:

>UIViewController
>> UIView
>>>UIScrollView
>>>>UILabel (or any other comparable UIKit Element)

UIScrollView 有严格的约束,例如,距每边 50 像素(没问题)。 然后,我向 UILabel 添加顶部空间约束(没问题)(我什至可以固定标签的高度/宽度,不做任何更改,但由于标签的固有尺寸,应该是不必要的)

当我向 UILabel 添加尾随约束时,麻烦就开始了:

例如,尾随空格:Superview 等于:25

现在出现两个警告 - 我不明白为什么:

A)可滚动内容大小不明确(滚动视图具有不明确的可滚动内容高度/宽度)

B)放错位置的视图(标签预期:x= -67 实际:x= 207

我在一个新项目中做了这个最小的示例,您可以下载该项目并附上屏幕截图。正如您所看到的,Interface Builder 希望 Label 位于 UIScrollView 边界(橙色虚线矩形)之外。使用“解决问题工具”更新标签的框架会将其移至此处。

请注意:如果将 UIScrollView 替换为 UIView,则行为符合预期(标签的框架是正确的并且符合约束)。所以似乎 UIScrollView 有问题或者我错过了一些重要的事情。

当我运行应用程序而没有按照 IB 的建议更新标签框架时,它的位置很好,正好在它应该在的位置,并且 UIScrollView 是可滚动的。 如果我更新框架,标签将看不见,并且 UIScrollView 不会滚动。

帮助我欧比旺·克诺比!为什么布局不明确?为什么视图错位了?

您可以在此处下载示例项目并尝试是否可以弄清楚发生了什么:https://github.com/Wirsing84/AutoLayoutProblem https://github.com/Wirsing84/AutoLayoutProblem


Updated

如今,苹果意识到了我们多年前解​​决的问题(lol_face)并提供了内容布局指南 and 框架布局指南作为UIScrollView。因此您需要执行以下步骤:

  1. 与下面的原始回复相同;

  2. 为了这contentView, 将上、下、左、右边距设置为 0将它们固定到内容布局指南滚动视图的;

  3. 现在设置contentView的高度等于框架布局指南的身高。对宽度做同样的事情;

  4. 最后,设置等高约束的优先级为250(如果您需要视图垂直滚动,则宽度需要水平滚动)。

Finished.

现在您可以在其中添加您的所有视图contentView,以及contentSize of the scrollView将根据以下内容自动调整大小contentView.

不要忘记从最后一个对象的底部设置约束contentView to the contentView的边际。

原始版本 [已弃用]

So I just sorted out in this way:
  1. 在 - 的里面UIScrollView add a UIView(我们可以称之为contentView);

  2. In this contentView, 将上、下、左、右边距设置为 0(当然从scrollView哪一个是superView); 还设置水平和垂直居中对齐;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UIScrollView 可滚动内容大小不明确 的相关文章

随机推荐

  • 从 unity 运行 python 脚本,以便稍后在我的游戏中使用其输出(文本文件)

    我试图从 unity C 脚本 运行一个 python 脚本 以便稍后在我的游戏中使用它的输出 这是一个文本文件 问题是 当我在 unity 中运行 C 脚本时 没有任何反应 Python 脚本在其上运行良好 自己的 谁能告诉我我错过了什么
  • Material-UI 刷新后崩溃

    我将 Material UI 与 Next js 一起使用 我正在运行npm run dev 我的问题是 每当我按下浏览器上的重新加载按钮时 网站上的样式就会完全破坏 这是正常行为吗 似乎 Material UI 停止工作了 这是我的代码
  • ml-gradle 是否提供任何功能来根据可用区域部署林拓扑?

    ml gradle 是否提供了任何功能 让我可以在考虑可用区的情况下部署副本林拓扑 或者 MarkLogic 提供的任何 API 来了解哪个节点位于哪个可用区 以便我可以为林副本部署定义自己的逻辑 None
  • “Un-Angularize”JS 对象的快速方法

    当使用双向绑定时 Angular 会向我的深层对象结构添加扩展属性 哈希 等 很好 但我有兴趣检索对象树的 JSON 快照 其中仅包含最初属于该对象树的内容 Angular 是否提供了一种获取绑定对象的 普通 版本的方法 我不想在绑定启动之
  • 改造 2 - POST 请求变成了 GET?

    My POST请求继续发送为GET并被 API 端点拒绝 我的服务类 FormUrlEncoded POST api users Call
  • 除非定义 aws-s3 gem? @@{:instance_writer=>true}

    我正在尝试整合aws s3 https github com marcel aws s3gem 使用最新版本的 Rails 4 1 0 启动服务器时我收到此错误 aws s3 0 6 3 lib aws s3 extensions rb 2
  • 获得苹果批准后我们可以拒绝应用程序吗?

    我已经上传了新的二进制文件作为我的应用程序的新版本 在上传二进制文件时 我选择 我将发布此版本 选项 意味着我只是将其放入 保留以供开发人员发布 假设我的应用程序获得了 Apple 的批准 并且我不想发布该版本 那么我必须做什么 是否可以拒
  • Yii:将 JavaScript 添加到标头

    I need
  • 在Prolog中,可以按随机顺序选择解决方案吗?

    如果我有以下情况 a X X 1 X 2 X 3 X 4 我可以按确定性顺序生成解决方案 a X X 1 X 2 X 3 X 4 是否有任何方法可以要求系统以非确定性 随机顺序产生解决方案 例如 a X X 4 X 1 X 3 X 2 我知
  • 如何从控制台应用程序打开WPF窗口[重复]

    这个问题在这里已经有答案了 我刚刚制作了一个简单的控制台应用程序 现在我想打开 WPF 窗口 我将 WPF 项目添加到我的应用程序中 P 但我不知道如何从我的 Main 打开这个窗口 我希望 some1 可以帮助我 Application
  • 如何从 Perl 中的外部命令中丢弃 STDERR?

    我想捕获外部命令的退出代码 同时用自定义错误消息替换其标准错误输出 my ret system which mysql if ret 0 say Error If mysql可执行文件不存在 它显示which命令错误消息 这是我不想要的 如
  • 值对象应该保存对实体的引用吗?

    值对象是否应该引用 DDD 方法中的实体 EDIT Dmitry 这大概就是我的情况 这里我附上类图 其中Account保留对集合的引用IInvoiceable项目 我治疗与Tenant作为实体 但它只拥有 1 个帐户 我不认为Accoun
  • 如何在不手动运行 dbt deps 的情况下配置 DBT 依赖项?

    我是 DBT 新手 目前正在尝试构建一个 Docker 容器 我可以在其中直接运行 DBT 命令 我有一个导出环境变量的文件 envs sh 看起来像 export DB HOST secret export DB PWD evenabig
  • 黄瓜、水豚和硒 - 提交不带按钮的表单

    我使用 Cucumber capybara 和 selenium 驱动程序进行了测试 该测试应填写表格并提交 正常的文本是 Scenario Fill form Given I am on the Form page When I fill
  • 为什么 ASP.NET MVC 控制器类需要公开?

    当我更改控制器类的访问修饰符时 会导致错误 如果我将操作方法 的可访问性设置为非公开 那么它也会导致错误 特别是找不到网页错误 为什么会这样呢 默认情况下 如果您没有为类指定任何访问修饰符 那么它将默认为internal在 C 中 只有同一
  • ( ... ) 和 { ... } 如何与 bash 中的管道创建子 shell 交互?

    我试图了解使用圆括号和大括号的 shell 子进程调用之间的区别 我认为大括号不会启动子进程 但它们似乎确实启动了子进程 bin sh a 1 b 1 a 2 a 3 b 2 b 3 echo a a echo b b 该脚本打印 a 1
  • 在任意时区之间转换

    我正在尝试找到一种简单而强大的方法来在任意时区之间转换时间 This http www cpearson com excel TimeZoneAndDaylightTime aspx http www cpearson com excel
  • 有没有一种方法可以在没有用户的情况下访问 LinkedIn API

    我正在构建一个使用 REST API 从 LinkedIn 获取数据的应用程序 当我的用户拥有 LinkedIn 帐户时 我使用 OAuth 代表用户进行身份验证和访问数据 我的问题是当用户没有 LinkedIn 帐户时 在这种情况下 我想
  • C# 和 Word - 用格式替换

    我试图做的最简单的形式是在预先存在的 Word 文档上填写一些信息 我的代码做得很好 它没有做的是按照需要修复格式 替换的文本需要设为黑色并加粗 表格上的总计字段需要右对齐 如果有人能指出我如何在我的代码中做到这一点 我将不胜感激 这是我当
  • UIScrollView 可滚动内容大小不明确

    各位开发者 我在 Interface Builder Xcode 5 iOS 7 中使用 AutoLayout 时遇到问题 这是非常基本和重要的 所以我认为每个人都应该知道它是如何正常工作的 如果这是 Xcode 中的一个错误 那么它是一个