是否可以在Interface Builder中使用预定义的常量值?
例如。如果我在头文件中定义MyConstantWidth = 10;
,我可以在IB中使用它吗?我希望它不起作用,但也许有人有一个聪明的解决方案。
答案 0 :(得分:0)
据我所知,Interface Builder是一张单程票。
您只能向.m提供信息(通过运行时属性),并且您无法使用.m / .h中的信息来提供IB。
答案 1 :(得分:0)
从概念上讲,在您的代码中放置值以在IB中使用会违背将视觉效果与编码逻辑分离的整个想法。
我确实认识到在IB中使用“命名”值有助于保持一致性并促进更新。在这方面,颜色是我个人的宠儿。
如果您的目标是以编程方式更改仅在IB中具有初始值的属性,则出口可能是您唯一的选择。
您还可以使用隐藏控件或低优先级约束来表示通过插座映射到的任意值。我有时会通过创建两个额外的低优先级约束并在适当时将其.constant值复制到高优先级约束来在约束值之间切换。这样可以保留IB中的所有值并且彼此接近(更重要的是在代码之外)。