问题标签 [autolayout]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1909 浏览

cocoa - 我怎样才能让窗口的内容视图“拥抱”它的子视图

这个问题一样,我有一个 NSView,它是 NSWindow 的 contentView,它包含几个垂直堆叠的子视图。其中一些是固定大小的,其中一些可以使用展开按钮展开或折叠。

我想实现一种“手风琴”效果,其中展开或折叠其中一个子视图会使其他所有内容调整并相应地调整超级视图和窗口的大小。

看起来确实应该能够通过使用自动布局设置正确的一组约束来实现这一点,我现在可以很好地完成初始布局。但我不知道如何设置约束,以便超级视图自动调整大小以拥抱子视图。

上面链接的问题中的 OP 从来没有得到答案,并提供了他自己的解决方案,就像我开始独立实施的那个一样,但我想我会再次把它扔在那里,以防万一有任何自动布局大师知道一个技巧. 似乎应该有一种方法可以通过利用自动布局让超级视图拥抱子视图,而无需手动计算子视图的大小并手动重置超级视图的大小。

有人知道怎么做吗?

0 投票
3 回答
16031 浏览

cocoa - 如何让 NSTextField 与自动布局中的文本一起增长?

Lion 中的自动布局应该让文本字段(以及标签)随其包含的文本一起增长变得相当简单。

文本字段设置为在 Interface Builder 中换行。

有什么简单可靠的方法来做到这一点?

0 投票
2 回答
2392 浏览

layout - HowTo:Visio SDK 页面从上到下重新布局流程图

我正在从代表流程图的分层数据集创建动态 VSD。我不想/不需要弄乱这些元素的绝对定位——自动布局选项就可以了。

问题是我无法弄清楚如何通过代码执行此命令。在 UI (Visio 2010) 中,命令位于此处的功能区上:设计(选项卡)-> 布局(组)-> 重新布局(SplitButton)。

这些中的任何一个都可以。通过几天的 Visio SDK 文档和谷歌搜索,没有发现任何用处。

有任何想法吗?(使用 C#,但 VB/VBA 可以)

0 投票
1 回答
8736 浏览

cocoa - 使用自动布局自动增长 NSScrollView 的文档视图?

使用自动布局时,是否有一种简单的方法可以NSScrollView适应其文档视图更改大小?

我试图同时调用setNeedsUpdateConstraints:文档setNeedsLayout:视图、剪辑视图和滚动视图,但没有任何结果。

fittingSize的文档视图报告正确的大小。

问题是包含子视图的文档视图在子视图更改其大小时不会重新调整大小,即使它们调用invalidateIntrinsicContentSize. 因此,随着文档视图的增长,文档视图的内容会被裁剪为文档视图的原始大小。文档视图在 nib 中创建,并在方法中设置为滚动视图的文档视图awakeFromBib

我希望文档视图框架在其fittingSize更改时会自动调整,并相应地更新滚动条。

NSPopover做类似的事情——前提是内容控制器视图的子视图的约束设置正确,并且各种内容拥抱值足够高(例如,高于隐藏弹出窗口的高约束优先级)。

0 投票
1 回答
892 浏览

xcode - 自动布局坚持错误的一面

我有一个复选框,它粘在视图的左侧。我希望它贴在控件旁边,或者与视图右侧的距离相同。我如何在 Xcode (IB) 中做到这一点?

0 投票
1 回答
296 浏览

objective-c - 如何在 OS X 中布局这些视图?

考虑 3 个视图headerbodyfooter具有以下限制:

  • header必须显示在顶部并具有固定高度
  • footer必须显示在底部并具有固定高度
  • body必须填充页眉和页脚之间的空间

是否可以使用自动调整大小的蒙版来布局这些视图?如何?

如果没有,是否可以使用自动布局来布局这些视图?如何?

0 投票
2 回答
1692 浏览

xcode - How to avoid Xcode 4 adding a width constraint to an NSPopUpButton?

The problem here is how to add an NSPopUpButton in Xcode 4's Interface Builder pane without IB also adding an (unwanted) width constraint.

In Interface Builder in Xcode 4.3 on Lion using Auto Layout, if you add a normal button to a view, Xcode will add constraints that pin the button to one of the vertical borders and one of the horizontal borders of the view. The width is determined by by the button's intrinsic content size.

If I do the same thing with an NSPopUpButton, Interface Builder adds a width constraint to the button, that I can't find a way to get rid of in IB.

I have tried to change the priority of the width constraint (which would suit my intent, as long as I can make it lower than my content compression resistance), but it adds a new one at 1000 immediately.

Any ideas about how to do it in Interface Builder, or do I have to do it programmatically?

0 投票
1 回答
6631 浏览

ios - iOS 6 Beta 中的自动布局

自动布局是在 iOS 6 中宣布的,但我一直很难找到有关它的任何信息或文档。它究竟是如何使用的?它使用 NSLayoutConstraint 吗?有可用的资源吗?

0 投票
4 回答
9801 浏览

cocoa - 使用 Autolayout 扩展 NSTextViews

我的应用程序由一个NSScrollView其文档视图组成,其中包含许多垂直堆叠的NSTextViews- 每个都在添加文本时在垂直方向上调整大小。

目前,这一切都在代码中进行管理。NSTextViews自动调整大小,但我用 观察它们的大小,重新计算它们的NSViewFrameDidChangeNotification所有原点以使它们不重叠,并调整它们的超级视图(滚动视图的文档视图)的大小,以便它们都适合并且可以滚动到。

这似乎是自动布局的完美候选者!我NSLayoutConstraints在第一个文本视图及其容器、最后一个文本视图及其容器以及每个文本视图之间进行设置。然后,如果任何文本视图增长,它会自动“下推”它下面的文本视图的起源以满足约束,最终增加文档视图的大小,每个人都很高兴!

除了,似乎没有办法NSTextView在基于约束的布局中添加文本时自动增长?使用与之前输入的文本自动扩展的完全相同NSTextView的内容,如果我没有为其高度指定约束,它默认为 0 并且不显示。如果我确实指定了一个约束,即使是 >=20 之类的不等式,它也会停留在该大小上,并且不会随着添加文本而增长。

我怀疑这与 NSTextView 的实现有关-intrinsicContentSize,默认情况下返回(NSViewNoInstrinsicMetric, NSViewNoInstrinsicMetric).

所以我的问题是:如果我根据文本的布局进行子类化NSTextView以返回更有意义intrinsicContentSize的内容,那么我的自动布局会按预期工作吗?

intrinsicContentSize关于实现垂直调整大小的 NSTextView 的任何指针?

0 投票
1 回答
2240 浏览

cocoa - 如何使用 Cocoa Autolayout 根据优先级调整两个子视图的大小?

我在 Cocoa 中玩 Autolayout,有些事情对我来说并不清楚。

我在一个窗口上有 2 个视图。每个视图的宽度是父窗口宽度的 1/2。

如果我调整窗口大小,我希望 View2 先调整大小。

当 View2 达到其最小尺寸时,我希望 View1 调整为最小尺寸。

我怎样才能做到这一点?