代码之家  ›  专栏  ›  技术社区  ›  Alan

具有预定义常量值的界面生成器

  •  4
  • Alan  · 技术社区  · 9 年前

    是否可以在Interface Builder中使用预定义的常量值?

    如果我定义 MyConstantWidth = 10; 在头文件中,我可以在IB中使用它吗?我希望它不会起作用,但也许有人有一个聪明的解决方案。

    2 回复  |  直到 9 年前
        1
  •  0
  •   Tiago Almeida Pete W    9 年前

    据我所知,Interface Builder是一张单程票。

    您只能向.m提供信息(通过运行时属性),不能使用.m/.h中的信息来向IB提供信息。

        2
  •  0
  •   Alain T.    9 年前

    从概念上讲,在代码中放置值以在IB中使用违背了从编码逻辑中分离视觉效果的整个想法。

    我确实认识到,在IB中使用“命名”值有助于保持一致性并促进更新。在这方面,颜色是我个人的最爱。

    如果您打算通过编程方式更改IB中只有初始值的属性,那么出口可能是您唯一的选择。

    您还可以使用隐藏控件或低优先级约束来表示通过出口映射到的任意值。我有时会通过创建两个附加的低优先级约束,并在适当的时候将它们的.常量值复制到高优先级约束来在约束值之间切换。这样可以使IB中的所有值彼此接近(更重要的是,不在代码中)。