作为一个有点熟练的 iOS 开发人员,我刚刚开始在 Cocoa 中开发一个桌面 OSX 项目,我遇到了一些我无法理解的问题。所以这个问题是针对 OSX 开发人员的。
我不太喜欢 Interface Builder,所以我倾向于用代码编写我的视图。我编写视图布局代码的最突出的方法是视图控制器的loadView
方法,至少在 iOS 上,我对所有内容都使用autoresizingMask
s。尝试小视图、大视图、旋转横向和纵向视图,如果一切都很好,我将继续列表中的下一个项目。现在在桌面上,autoresizingMask
作品(或只是看起来)有点不同。首先,属性有不同的名称,但它们的行为似乎也很奇怪或出乎意料。
当我遇到下面的问题时,我认为这一定是我的代码错了,所以在尝试了足够长的时间后,为了确认,我用 Interface Builder 重新创建了它,你猜怎么着:我得到了完全相同的结果。使用四个垂直堆叠的子视图进行视图。将中间的两个设置为具有灵活的高度,外部的要固定。当您运行它时,将其缩小并再次备份,我在调整大小之前和之后得到两个完全不同的布局。见图片:
现在我可以从运行循环之间的数学角度理解为什么会发生这种情况,但是从“自动调整大小”或“自动调整大小”功能的角度来看,这绝对没有意义。
在我尝试在这里写出所有调整大小的主题之前,我可以问你这些问题吗?如果您觉得它添加到帖子中,请随意详细说明调整大小的主题。
- 难道我不想在桌面项目上使用 Interface Builder 是个傻瓜吗?
autoresizingMask
我应该比iOS项目依赖更少吗?- 在没有 Interface Builder 的情况下,确保您的布局符合标准有哪些不错的替代方案?
干杯!