如何使用自动布局更改 uiview 的高度?

2024-01-05

因此,我创建了这个场景,以便了解视图如何根据其内容增加高度。然而我仍然无法实现它。

这就是我现在所拥有的:

文本视图根据内容而增长。但是包含它的 uiview 正在消失。我应该使用什么约束,以便当 uitextview 变大时,其父视图的高度也会增加?


首先清除一切事物中的所有限制,这样我们就有了一个全新的状态。

第 1 步:构建视图层次结构。在这个例子中,我们想要这样的东西:

视图控制器的视图,我们称之为parentView有一个子视图,我们称之为redView. That redView有一个孩子,一个文本字段,我们称之为textField.

层次结构如下所示:

步骤 2:设置特定于任何单个视图的任何约束。在这种情况下,我们可能只想在文本视图上设置宽度约束。现在,我只设置 200pts 的宽度。

步骤 3:设置之间的约束textView及其父级,redView。假设我们想要一个 10pt 的边框。让我们添加这些约束:

添加这些约束后,我们将收到一些自动布局警告和错误。对于初学者来说,因为我为超级视图添加的 with 和 space 约束与实际大小不匹配,所以我会收到如下警告:

还会有一些错误描述缺少 X 和 Y 位置redView并为textView。这里的错误实际上是必要的两倍。textView知道自己相对于什么位置redView。我们不需要更多的约束来解决textView的立场。然而,redView还不知道该把自己定位在哪里……所以最终,textView也有点不太清楚。

我们可以更新textView的框架来消除警告,但让我们继续修复实际的错误。

第 5 步:设置redView的约束相对于superView. redView已经知道尺寸是多少。请注意,我们没有错误redView的宽度。它只是不知道要去哪里。在这种情况下,我会简单地说我们想要redView居中。所以我们要添加这些约束:

现在我们已经解决了一些问题。唯一剩下的问题是height对于一切。

为了解决这个问题,我们必须设置内容大小优先级textView。将这些全部设置为 1000 并将“固有大小”属性更改为“占位符”。

到目前为止,所有自动布局错误都应该消失,我们应该只留下警告,因为我们的故事板框架与我们的约束条件不匹配。

我们可以通过选择来解决这个问题parentView并更新所有框架:

当涉及到根据内容大小自动调整大小时,这个自动布局难题有一个最后的警告:如果我们的文本视图没有内容会发生什么?

如果我们的文本视图没有内容,自动布局将选择高度 0,我们的用户甚至看不到那里有文本视图,更不用说点击它来添加内容(并使其展开)。当使用自动布局和基于内容的大小调整时,我们几乎应该始终确保已为内容视图设置显式大小或最小大小。

我们不必担心我们的textView的宽度,因为我们将其明确设置为 200。所以让我们添加一个最小高度约束。首先添加任何高度约束:

现在去尺寸检查员那里检查textView,找到我们添加的这个高度约束,并将其编辑为大于或等于约束:

故事板不会反映我们的内容变化textView并适当调整其大小,但您的约束现在已正确设置,并且这将在您的设备或模拟器中正常运行。

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

如何使用自动布局更改 uiview 的高度? 的相关文章

随机推荐

  • 使用 AJAX.NET 的 $get() 和 $find()

    我正在尝试遵循找到的 PageMethods 示例here http encosia com 2007 07 11 why aspnet ajax updatepanels are dangerous 但是 我在尝试调用时收到错误 get
  • Restlet HTTP 连接池

    我对 Restlet 相当陌生 编写了一小段代码来进行 HTTP 调用 它正在工作 但我想知道如何将 HTTP 连接池 apache 添加到其中 我找不到任何教程或参考代码 Client client new Client Protocol
  • 在 Java JFrame 中显示图像

    在 java JFrame 中的特定坐标处显示图像的最佳方法是什么 我知道有很多方法可以做到这一点 我只需要知道显示我计划在框架中移动的图像的最佳方式 将 ImageIcon 与 JLabel 结合使用是最简单的方法 实际上 您可以根据您的
  • 在 3d 中绘制 3 个向量

    我有 3 个向量 其中一个向量的角度为Phi 另一个角度为Teta 最后一个是点向量Y axe 计算完点后Teta Phi有一个功能 for teta 0 10 2 pi 2 for phi 0 10 2 pi 2 Y current v
  • android 蓝牙连接失败(isSocketAllowedBySecurityPolicy start : device null)

    我试图用蓝牙连接两部手机 galaxy note 1 galaxy note 2 但套接字连接失败 这是我的 LogCat I BluetoothService 24036 BEGIN mConnectThread D BluetoothU
  • 从左侧滑入CSS动画

    我想制作一个简单的动画 当页面加载时 我的徽标应该从框的左侧动画到右侧 我尝试了很多版本 但还没有成功 HTML div img src logo png alt logo style width 170px height 120px di
  • Kafka:使用java更改特定主题的分区数量

    我是 Kafka 新手 正在使用新的 KafkaProducer 和 KafkaConsumer 版本 0 9 0 1 java中是否有任何方法可以在创建特定主题后更改 更新其分区数量 我没有使用 Zookeeper 创建主题 当发布请求到
  • JavaScript 函数通过链式组合

    我检查了重复问题的可能性 并且无法找到准确的解决方案 我用 JavaScript 编写了一些函数链代码 如下所示 并且工作正常 var log function args console log args return function f
  • 浏览器同步无法用 gulp 重新加载

    我正在尝试按如下方式吞咽浏览器同步 var liveReload require browser sync create reload when something changes once scss is converted to css
  • 对话框的 Url 不适用于 angular.bootstrap (无限 $digest 循环)

    我有一个平均堆栈网站 我想用执行函数 https stackoverflow com a 45428344 702977绑定一个按钮以在对话框中启动该网站 function doSomethingAndShowDialog event cl
  • Tensorflow Keras 保留每批的损失

    我正在寻找构建 keras 模型架构的最佳实践的建议 示例 我一直在摸索 Model 子类和功能模型的各种迭代 但无法连接所有点 该模型应具有自定义指标和相关损失 其中 在训练期间 按批次计算指标 并在每个时期结束时根据批次计算的平均值计算
  • 无法解析符号“MediaSessionCompat”

    我无法导入MediaSessionCompat 导入整体的导入声明android support v4 media库不会显示在 Android Studio IntelliSense 中 并且无法解析其中任何内容的符号 我是否必须进行某种额
  • 悬停时动画不透明度 (jQuery)

    我们有一个链接 a href Some text span style width 50px height 50px background url image png span a 我们想要改变的不透明度 span 当链接悬停时带有一些动画
  • 基于接口未实现的通用约束

    我有一个带有工厂服务的应用程序 可以在解决必要的依赖项注入的同时构建实例 例如 我用它来构建对话框视图模型 我有一个如下所示的服务接口 public interface IAsyncFactory Task
  • 如何在实时服务器上调试 ASP.NET 应用程序 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个基于 net Framework 1 1 的旧 asp net Web 应用程序 它已经部署到实时服务器很多年了 现在我仅在实
  • 从模型调用辅助方法

    For my Predictions模型我创建了一个方法predictions helper rb像这样 module PredictionsHelper def time in date time date time between da
  • div宽度高度根据文本?

    我想要根据文本大小选择框的宽度高度 我尝试使用下面的代码 它可以工作 但不是根据文本的节框的最佳宽度和高度 我设计了三个css id 第一个是 wbp row 第二个是 wbp col 最后一个是文本id名称是 tridtext I try
  • 如何使用 fetch api 获取 XML

    我正在尝试制作一个天气应用程序 显示一周中许多天的天气和温度 我目前正在使用 openweathermap api 来完成此类任务 问题是我想要的信息 即天气日期 仅采用 xml 格式 由于我出于学术原因在 ES6 ES2015 中重建它
  • Spring Boot 中未合并多个 application.yml

    我有一个用于数据库通信的模块 my db lib 并导入到基于 Spring Boot 的 Web 应用程序模块 my web app 我想设置有关数据库的配置my db lib 并在中设置网络应用程序my web app 当我使用 yml
  • 如何使用自动布局更改 uiview 的高度?

    因此 我创建了这个场景 以便了解视图如何根据其内容增加高度 然而我仍然无法实现它 这就是我现在所拥有的 文本视图根据内容而增长 但是包含它的 uiview 正在消失 我应该使用什么约束 以便当 uitextview 变大时 其父视图的高度也