【问题标题】:Vertical and Horizontal layouts in Cappuccino卡布奇诺中的垂直和水平布局
【发布时间】:2012-09-04 21:01:41
【问题描述】:

在 Flex 中,有 HGroup 和 VGroup 之类的东西。它们允许水平和垂直对齐内容,元素之间有一些预先指定的间隙。

卡布奇诺有什么相似之处吗?我在任何地方都找不到有关卡布奇诺布局的任何信息(除了自动布局,这不是我需要的)。

【问题讨论】:

    标签: cappuccino


    【解决方案1】:

    就像 Primalmotion 所说,没有内置的类可以做到这一点。但是,制作自己的容器视图并不难:https://gist.github.com/3630322

    我将把水平布局视图作为练习留给你。

    稍微解释一下:

    在 Cappuccino 运行循环结束时,每个视图都会做两件事:“布局子视图”和“重绘”自身。基本上,当视图被修改(例如,添加新的子视图)时,视图会设置一个标志,表示它需要更新屏幕上的内容。我们实际上可以通过重写被调用的方法来控制布局的发生方式:

    - (void)layoutSubviews;
    

    这非常强大,而且非常高效,因为它意味着视图在运行循环期间只“渲染”一次。

    编辑:我应该注意,该代码根本没有经过测试。我相信它应该可以工作,除非有一些奇怪的错字:)

    【讨论】:

    • 哇!非常感谢你!感谢您的帮助。
    【解决方案2】:

    卡布奇诺没有这样的东西。但是您可以使用自动调整大小的蒙版来做同样的事情。自动布局不能实现什么?

    【讨论】:

    • 您能举个例子吗?就像我有组件 A、B 和 C。我将如何将它们以垂直顺序一一放置,间隙为 5px?提前谢谢你。
    • 好的,现在我明白了。我想您希望 A B 和 C 在调整超级视图大小时保持相同的 5px 边距。在这种情况下,您可以使用 CPSplitView
    最近更新 更多