【问题标题】:How to overlap two controls in iOS watch kit using interfacebuilder如何使用interfacebuilder重叠iOS手表套件中的两个控件
【发布时间】:2015-04-20 13:00:57
【问题描述】:

我有两个带有图像的按钮,我想将一个重叠在一起。甚至有可能做到 iOS Watch 吗? 此外,如何处理 WKInterfaceObject 在 watch 编程中的背景或前景深度,如 sendViewtoBackground 或 BringSubViewtoFront,就像在普通 iOS 编程中一样?

【问题讨论】:

    标签: ios watchkit apple-watch ios-extensions


    【解决方案1】:

    这从 watchOS4 开始成为可能:您可以使用组来创建重叠内容。在属性检查器中将组的布局属性设置为“重叠”。系统根据项目的对齐属性定位组中的每个项目。

    更多信息@https://developer.apple.com/documentation/watchkit/wkinterfacegroup

    【讨论】:

    • 我创建了两个组,每个组内有 1 张图像。我将它们设置为覆盖但没有。
    • @tymac 您必须将 2 张图片放在具有覆盖布局的同一组中。..
    【解决方案2】:

    WatchOS4+

    对于 @DrMickeyLauer 提供的 Watch OS4+ follow the answer

    过时的答案

    在手表中,您没有 Z 层次结构。

    您最多可以使用一个组,该组具有背景,然后可以控制该背景。

    另一种选择(hack?)是将所有层次结构呈现为 UIImage 并将其设置在手表中。

    【讨论】:

    • 酷。真的帮了我。谢谢朋友
    • 请注意,此答案已被较新版本的 watchOS 过时。
    • @DrMickeyLauer 好点,链接到你的答案!
    【解决方案3】:

    不,你不能,使用 iOS 正常编程。

    你可以有两个技巧:

    • 创建一个组,并隐藏您不想看到的按钮。想要更改时隐藏/取消隐藏按钮。

    • 在同一个 WKButton 上管理:您更改按钮上的图像,并根据图像修改您的逻辑(不是一个很好的 hack)。

    【讨论】:

      【解决方案4】:

      我花了一段时间才弄明白;但是,我不仅可以重叠界面元素,还可以将 alpha 设置为不同的值。 Interface Builder 的附加图像显示了两件事:重叠对象和重叠对象的不同 alpha 设置。

      注意Interface Controller背景中的waveform.path SF Symbol和它上面的播放按钮之间的区别。仅使用 SF 符号无法以任何其他方式实现此效果。如果一个分组元素的 alpha 降低,则其他元素的 alpha 也会降低。为了达到这个效果,我将重叠组的背景设置为纯黑色,然后将 alpha 设置为 0.75,让大约 0.25 的波形路径符号显示出来。这样做可以让我在不影响其 alpha 设置的情况下重叠播放按钮。

      下图显示了布局中每个元素的设置:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-11-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多