- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
喜欢this question ,我有一个 NSView,它是 NSWindow 的 contentView,它包含几个垂直堆叠的 subview 。其中一些是固定大小,一些可以通过公开按钮展开或折叠。
我想实现一种“ Accordion ”效果,其中展开或折叠一个 subview 会使其他所有内容相应地调整并调整 super View 和窗口的大小。
看起来确实应该能够通过使用自动布局设置正确的一组约束来实现这一目标,而且我现在可以很好地完成初始布局。但我不知道如何设置约束,以便 super View 自动调整大小以容纳 subview 。
上面链接的问题中的OP从未得到答案,并提供了他自己的解决方案,就像我开始独立实现的解决方案一样,但我想我会再次将其扔在那里,以防有任何自动布局专家知道一招。似乎应该有一种方法可以通过利用自动布局让 super View 拥抱 subview ,而不必手动计算 subview 的大小并手动重置 super View 的大小。
有人知道怎么做吗?
最佳答案
自动布局很酷而且很全面。而且神秘。
我努力尝试,但无法想出一套可以实现我想做的事情的约束。在我看来,如果你在一个 super View 中垂直堆叠一些 NSView 并设置约束,使得顶部 subview 固定到 super View 的顶部,并沿着 subview 堆栈向下移动,你将每个 subview 的顶部固定到 subview 的底部边缘上面的,然后最后将最后一个 subview 的底部边缘固定到 super View 的底部边缘,然后以编程方式调整一个或多个 subview 的大小,它应该能够在 super View 的底部上拉或下推让它紧贴其 subview 。
除了最后一 block 之外,一切都按预期进行。当您尝试将底部 subview 固定到 super View 的底部时,自动布局无法满足所有约束。似乎调整 super View 的大小以满足约束并不在算法中。或者是我缺少一些其他需要设置的约束。
当我讨论这个主题时,查看调试器,似乎窗口的 contentView 和窗口框架之间存在不可设置的约束。我有点想知道如果能够打破这些限制是否能让原来的方案发挥作用。
不管怎样,我确实想出了一个使用自动布局的解决方案,它与我希望自动布局所做的非常接近,因为所需要的只是子类化 NSView 并将几行代码放入内在大小方法中,然后使用 super View 的子类。我创建了一个 xcode 项目,其中包含我的可折叠 View 基类以及 github 上整个事情的工作演示。 。
关于cocoa - 我怎样才能得到窗口的contentView到 "hug"它的 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10415521/
在 C# 及其同类语言中,我们总是使用 public string SomeString { get; set;} 但是你也可以使用(我最近才发现这个,而且是在和编译器闲逛的时候发现的) public
我已经为 Controller 中的函数编写了 Swagger 注释,但在生成 swagger-ui 代码时出现错误。以下是我的注释代码 /*** End of Annotation For dele
我正在 PHP 中开发一项服务,该服务使用 exec 函数调用 jar 文件,如下所示: $text = "string with accents á, ó, ú or العربية"; exec(
我正在尝试了解有关在程序中利用/防止缓冲区溢出的方法的更多信息。我知道如果大小是恒定的,下面的代码很容易受到攻击,但是如果大小每次都是随机的怎么办?是否还有办法从堆栈中获取它并以某种方式动态改变溢出字
对于一项学校作业,我应该制作一个可以以小时、分钟和秒为单位存储时间的时间类。一切正常,但仅声明 get 时属性总是返回 0;并设置; private int seconds, minutes, hou
我正在遍历一些测验对象并将结果存储到json变量中。出现"ReferenceError is not defined"错误,不确定原因。 JS代码 // This function will send
使用 Nifi 的 PutDatabaseRecord 处理器在 MySQL 中插入阿拉伯字符(非拉丁语)时,字符被“??????”替换 插入后,阿拉伯字符串被替换为??????。我已经使用 utf8
谁能告诉我为什么 gets(abc) 使用 char[] 而不是使用 int? int abc; char name[] = "lolrofl"; printf("Hello %s.\n",na
为什么在使用 as.POSIXct 转换下面的时间戳时得到所有 NA? > head(tmp$timestamp_utc) [1] Fri Jul 03 00:15:00 EDT 2015 Fri J
def get_submultiples(n): # Get all submultiples of n if n == 1: return [1] i = 2
有没有办法访问基本模型的实际 child ,意思是:继续使用 django Docs 中的示例,让我们假设我正在建模不同的外卖餐厅,它们只是有共同点 姓名 都有deliver方法 至此: class
我正在寻找一个范围的总和,但我总是得到“未定义”。我相信有些东西出现在错误的位置,但我不确定它是什么。 第 1 部分:“编写一个范围函数,它接受两个参数(start 和 end),并返回一个包含从 s
我已将 spring 版本从 4.2.3 更新到 5.0.2,并将安全性从 5.0.1 更新到 5.0.10 并使用 spring -flex版本1.6.0.RC1。 像这样使用 BlazeDS 依赖
我可以输入但在输出中,我得到的结果为零。我使用两门类(class),一门是主要的,是日志,另一门是成绩计算。在成绩计算器中,我编写了方法和构造函数,在日志中,类通过构造函数调用这些方法。 import
我在使用 go 时遇到了构建问题。我想知道这是编译器中的错误还是代码的问题。 // removed the error handling for sake of clarity file, _ :=
我的角色在与盒子互动时出现问题。我有一个 GameObject Player 附加了一个脚本来与游戏中的盒子交互,脚本是: using UnityEngine; using System.Collec
有谁知道为什么我不能在下面生成百分比 codeIshere (第 97-117 行)? var format=d3.format(".1%"); var percent = format(functi
我正在尝试编写图像识别代码,以针对不同动物图像训练系统,这就是代码。我使用 anaconda 作为解释器,使用pycharm作为环境。 import tensorflow as tf import o
我正在尝试在 Java 中初始化 Matcher,但无论字符串是否已初始化且不为 null,都会继续获取 NPE。 这是代码: pattern.compile("\\s"); System.out.p
所以我有这段代码: ; (function (g) { var d = document, i, am = d.createElement('script'), h = d.head || d.g
我是一名优秀的程序员,十分优秀!