- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
在 WWDC 2012 视频之一“Auto Layout By Example”中,他们演示了一个使用 Autolayout 的 OS X 应用程序,在大约 7 或 8 分钟的时间里,他展示了如何在单个 View 中取消选中属性中的框Inspector,该框的名称类似于“将自动调整掩码转换为约束”。现在,我很清楚这个框的等效代码,translatesAutoresizingMaskIntoConstraints bool 值,但我似乎无法在 iOS 或 OS X 项目的任何地方找到这个复选框。我的项目使用自动布局。我真的很喜欢这个复选框,因为我在学习 Autolayout(以及将 springs/struts 应用程序转换为 AL)的过程中苦苦挣扎的一件事是 Xcode 为每个 View 生成的百万约束,以及如何清理它们并明智地覆盖一些/全部在代码中。为了一次转换一个 View ,我想要的是关闭那些自动生成的约束。
为什么我看不到这个复选框?我正在使用 Xcode 4.6。
最佳答案
该复选框在 Interface Builder (IB) 中可用,但前提是您正在开发针对 OS X 的 Cocoa 项目。对于 iOS,它目前不可用。您只能以编程方式设置它。
根据我的理解,iOS 上的自动布局 - 其他人可以随意提出意见 - 并不是 OS X 上可用功能的完整实现。
老实说,考虑到您之后所说的,您可能不需要担心此复选框。我认为将 OS X 项目升级到自动布局很重要,但通常对于 iOS,您不太可能将其中一个和另一个混合使用。也就是说,您要么在文件检查器中选中 Xib 以“使用自动布局”,要么不选中。
也就是说,在一个用例中,您可能需要弄乱该标志。如果您想为 View 创建一个独立的 Xib 文件,然后使用 loadNibNamed
以编程方式加载它。这样做时,默认情况下,旧样式的自动调整大小约束会转换为新样式的自动布局约束。通常我想添加我自己的,所以我将该标志设置为 zap 'em。
myView.translatesAutoresizingMaskIntoConstraints = NO
无论如何那是另一个故事。
这里是更多信息的链接,尽管您肯定已经看过它:
我要说的一件事是,如果你一开始就在自动布局方面苦苦挣扎——如果你不是,你就不是人了,我们都是——那么我会坚持使用 Interface Builder 和想想黄金法则。对我来说最重要的是它讨厌模棱两可。这就像自然界中的真空。在您可以删除您不想要的约束之前,您必须添加您确实想要的,然后删除旧的。
我犯的另一个错误是混合使用自动布局和框架。所以我会做一些检查框架宽度的代码,然后将其应用于约束。糟糕的错误。真的是泪流满面。当您进入自动布局时,必须真正忘记使用 CGRect
、frame
等做任何事情。
尽管坚持。从 IB 中的一些简单 View 开始并进行实验。疯狂是有方法的,真的。
另外一个值得一看的链接是:
关于ios - Xcode复选框在哪里 "Translates Autoresizing Mask Into Constraints",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17018533/
我是一名优秀的程序员,十分优秀!