以编程方式对Interface Builder / xib / nib自动调整掩码

以编程方式对Interface Builder / xib / nib自动调整掩码

我在(可能是错误的)假设中,在xib中启用右边距指示符等同于使用UIViewAutoresizingFlexibleLeftMargin内部代码等等。

所以,我曾经根据这个快照思考: 

今天晚些时候我不得不交叉检查,偶然发现了这个帖子

还有苹果文档,标题为标题部分 - “使用自动调整规则自动处理布局更改”链接:https://developer.apple.com/library/content/documentation/WindowsViews/Conceptual/ViewPG_iPhoneOS/CreatingViews/ CreatingViews.html

所以我现在脑子里有一个更新的概念,关于如何以编程方式设置自动调整掩码等同于xib设置:

场景1:仅设置(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight)相当于:

在XIB?

场景2(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin)代码设置相当于:

在XIB?

我的2个更新方案是否正确?我现在理解了吗?


函数式编程
浏览 477回答 3
3回答

慕姐4208626

是的,Interface Builder在某种意义上使它“逆转”(或UIView,取决于你如何看待它)。您引用的“情景”是正确的。

皈依舞

是的,你已正确引用了一些东西。此外,我同意它感觉有点倒退,所以为此我感谢你的帖子。UIViewAutoresizingFlexibleMargins在使UIView的边距在各个方向都灵活时,您可能会喜欢使用预处理器宏。我把它放在预编译的头文件中,所以它包含在任何地方。#define UIViewAutoresizingFlexibleMargins                 \              UIViewAutoresizingFlexibleBottomMargin    | \              UIViewAutoresizingFlexibleLeftMargin      | \              UIViewAutoresizingFlexibleRightMargin     | \              UIViewAutoresizingFlexibleTopMargin使用UIViewAutoresizingFlexibleMargins将使UI元素保持居中,因为它不会拥抱任何一方。要使元素与其父元素一起增长/缩小UIViewAutoresizingFlexibleWidth,请UIViewAutoresizingFlexibleHeight分别设置和。我喜欢使用UIViewAutoresizingFlexibleMargins因为我可以稍后引用它:myView.autoresizingMask = UIViewAutoresizingFlexibleMargins;代替myView.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin;通常我会看到这些边距在一行上或者像上面的例子一样。只是很难读。

哔哔one

在框内启用垂直/水平箭头(称为弹簧)将使高度/宽度变得灵活。但启用外线(称为支柱)将使该侧不灵活/不灵活。启用左外侧线(左侧支柱)不等于启用UIViewAutoresizingFlexibleRightMargin。相反,UIViewAutoresizingFlexibleRightMargin= 上如果右支撑禁用,关闭如果启用右支撑。起初它很混乱,但如果仔细观察,弹簧和支柱就会有所不同。我不知道Apple为什么会这样做,但对我来说,有些情况下它更容易使用。在代码中使用相反的属性更加令人困惑。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

iOS