【问题标题】:HTML-like layout in iPhone applicationiPhone 应用程序中的类似 HTML 的布局
【发布时间】:2010-02-14 13:40:20
【问题描述】:

如何制作一个独立于分辨率的 iPhone 视图控制器,它可以像浏览器堆叠 HTML 元素一样堆叠它的子视图?

这是example。顶部有一个 UILabel,可以包含 1-6 行文本;标签正下方的一行中的两个 UIButton;左侧按钮可以有一个短标题或长标题。我希望按钮出现在文本结束的正确垂直位置;我希望左键根据标题的长度进行缩放,右键自动重新定位。

换句话说,我希望这种 UI 在内容发生变化时具有最自然的行为。

有没有办法告诉 Interface Builder 或 UIKit 自动实现这种行为?

【问题讨论】:

    标签: iphone uiviewcontroller interface-builder


    【解决方案1】:

    Cocoa 的布局管理器在 iPhone 上不可用。唯一的自动布局工具是UIViewautoresizingMask属性,不足以解决你的问题。所以必须自己编码。

    正确的起点是覆盖视图的layoutSubviews 方法。只要视图的边界发生变化,它就会自动调用。一些控件还可以调用 sizeToFit 方法,实现对内容的自动调整大小。

    【讨论】:

      【解决方案2】:

      我会看看Silverlight handles layout 是如何为 iOS 创建一组类似的容器的。看起来还没有人这样做,所以我打算在我的下一个项目中这样做。

      基本上,有不同的容器控件以不同的方式布置子控件。例如,有一个 StackPanel,它根据您可以设置的各种属性堆叠子控件。还有一个网格,当您想要构建 HTML 表格之类的东西时。它们专为组合而设计,因此您可以使用各种组合的容器,用少量代码实现相当广泛的布局。

      【讨论】:

        猜你喜欢
        • 2011-10-25
        • 1970-01-01
        • 1970-01-01
        • 2012-12-25
        • 2015-06-24
        • 1970-01-01
        • 1970-01-01
        • 2017-01-22
        • 1970-01-01
        相关资源
        最近更新 更多